Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   окно поверх остальних окон (http://forum.oszone.net/showthread.php?t=337430)

tasm 28-10-2018 21:43 2838167

окно поверх остальних окон
 
Всем доброго времени суток.
На работе визвалса сам решить задачу,так как простенькие задачи делал,а тут не все так просто
Есть задача переключаться между двома приложенниями Internet explorer и другая программа спецефическая, используется на производствах.
Запускается только в полноЭкранном режиме. Думал на ahk сделать две кнопки на экране и просто нажатием на нужную переключать,но...
Эта программа имеет класс окон с маской afx...И когда работаеш в программе оно меняет єтот клас окна как то по маске.
Сделал одну клавишу,симуляцию ALT+TAB,работает,но когда работаеш в етой программе,она пропадает иногда.(на некоторых компах быстрей пропадает на других
реже)помогите может можна что сделать на autoit.
Єто сделал на ahk
Скрытый текст
; Generated by SmartGUI Creater
Winset, AlwaysOnTop
Gui, +AlwaysOnTop -Caption +ToolWindow -Border
Gui, Color, 0B6300
GUI, font,, Verdana
GUI, font, bold
GUI, font, q5
GUI, font, c207EC4
GUI, font, s18
Gui, Add, Button, x16 y7 w140 h50, D-Check
Gui, Show, x190 y08 h60 w180, Generated using SmartGUI Creator
Return



ButtonD-Check:
send !{Tab}
Loop, 1 ;Провірка чи запущенний брайзер
{
IfWinNotExist, ahk_exe iexplore.exe
{
Run, iexplore.exe, , UseErrorLevel
if ErrorLevel
{
MsgBox, Скопируйте программу в корень рабочей папки и перезапустите приложение.
ExitApp
}
WinWait, ahk_exe iexplore.exe
}
Else
{
Continue
}
}

Loop, 1 ;Проверка на ошибки
{
IfWinExist, ahk_group Errors
WinClose, ahk_group Errors
else
continue
}
}
Return

GuiClose:
ExitApp


Вот что то с примера с рисовал.Ну много надо доделать...
Скрытый текст
#include <GUIConstantsEx.au3>

Example()

Func Example()
; Create a GUI with various controls.
Local $hGUI = GUICreate("Example", 300, 200)

; Create a button control.
Local $idButton_Notepad = GUICtrlCreateButton("Dcheck", 10, 10, 150, 150)
;Local $idButton_Close = GUICtrlCreateButton("Close", 210, 170, 85, 25)

; Display the GUI.
GUISetState(@SW_SHOW, $hGUI)

Local $iPID = 0

; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE ;$idButton_Notepad
ExitLoop
;$iPID = Send("#r")

Case $idButton_Notepad
; Run Notepad with the window maximized.
; Run Notepad with the window maximized.
;$$iPID = Run("notepad.exe", "", @SW_SHOWMAXIMIZED)
$iPID = Send("{LALT}{tab}")

EndSwitch
WEnd

; Delete the previous GUI and all controls.
GUIDelete($hGUI)

; Close the Notepad process using the PID returned by Run.
If $iPID Then ProcessClose($iPID)
EndFunc ;==>Example

1)Не могу с ємулировать нажатие ALT+TAB переключение между окнами.
2)Как сделать поверх все окон всегда его

tasm 28-10-2018 22:16 2838172

Нашел скрипт очень подходящий
Скрытый текст
#include <WindowsConstants.au3>

$GUI = GUICreate("", 50, 30, 50, 50, $WS_POPUP, $WS_EX_TOOLWINDOW)
$Btn = GUICtrlCreateButton("Button", 0, 0, 50, 30)
GUISetState()

While 1
$Pos = WinGetPos("[class:Notepad]")
If @error Then
GUISetState(@SW_HIDE)
Else
GUISetState(@SW_SHOW)
WinMove($GUI, "", $Pos[0] + 150, $Pos[1] + 150)
WinSetOnTop($GUI, "", WinActive("[class:Notepad]") ? 1 : 0)
EndIf
If GUIGetMsg() = $Btn Then ControlSend("[class:Notepad]", "", "Edit1", "Click ")
WEnd


но как сделать чтоб он работал с классом окна типа afx....


Время: 15:13.

Время: 15:13.
© OSzone.net 2001-