Здравствуйте!
Может похожая тема уже была, но поиск по форуму уже третий день "временно отключен" :(.
Пишу скрипт, который создает окно с пользовательскими кнопками и сворачивает его в трей. При запуске второго экземпляра скрипта требуется развернуть это окно из трея. С помощью функций WinSetState и WinActivate окно разворачивается - но нажатия на кнопки не обрабатываются. Если же развернуть окно из трея мышкой - все работает.
Как развернуть полноценное окно из трея вторым запущенным экземпляром скрипта?
Может похожая тема уже была, но поиск по форуму уже третий день "временно отключен" :(.
Пишу скрипт, который создает окно с пользовательскими кнопками и сворачивает его в трей. При запуске второго экземпляра скрипта требуется развернуть это окно из трея. С помощью функций WinSetState и WinActivate окно разворачивается - но нажатия на кнопки не обрабатываются. Если же развернуть окно из трея мышкой - все работает.
Как развернуть полноценное окно из трея вторым запущенным экземпляром скрипта?
Код:
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <Misc.au3>
If _Singleton("MyWindow", 1) = 0 Then
$oGUI = WinGetHandle("[TITLE:MyWindow; CLASS:AutoIt v3 GUI]")
MsgBox(4096, "Внимание", "Текущий скрипт уже запущен. ID: " & $oGUI)
WinSetState("MyWindow", "", @SW_SHOW)
WinSetState("MyWindow", "", @SW_RESTORE)
WinActivate("MyWindow")
Exit
EndIf
Opt("TrayMenuMode", 1 + 2)
Opt("GUIOnEventMode", 1)
Opt("TrayOnEventMode", 1)
$hGUI = GUICreate("MyWindow", 200, 300, -1, -1, $WS_CAPTION + $WS_SYSMENU)
GUISetOnEvent($GUI_EVENT_CLOSE, "_MinimizeTray")
$ShowButton = GUICtrlCreateButton(" Button", 5, 100, 190, 40, $BS_MULTILINE)
GUICtrlSetImage($ShowButton, "shell32.dll", 274)
GUICtrlSetOnEvent($ShowButton, "_Button")
$CloseButton = GUICtrlCreateButton("Выход", 120, 250, 75, 45)
GUICtrlSetImage($CloseButton, "shell32.dll", 221)
GUICtrlSetOnEvent($CloseButton, "_Exit")
TrayCreateItem("Восстановить")
TrayItemSetOnEvent(-1, "_RestoreTray")
TrayCreateItem("")
TrayCreateItem("Выход")
TrayItemSetOnEvent(-1, "_Exit")
TraySetOnEvent(-8, "_RestoreTray")
TraySetClick(16)
TraySetState(1)
While 1
Sleep(10)
WEnd
Func _MinimizeTray()
GUISetState(@SW_HIDE, $hGUI)
EndFunc ;==>_MinimizeTray
Func _RestoreTray()
GUISetState(@SW_SHOW, $hGUI)
GUISetState(@SW_RESTORE, $hGUI)
EndFunc ;==>_RestoreTray
Func _Button()
MsgBox(4096, "Button", "Нажата кнопка Button")
EndFunc ;==>_Button
Func _Exit()
Exit
EndFunc ;==>_Exit