Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для sLiDeR-X

Ветеран


Автор проектов


Сообщения: 1202
Благодарности: 280

Профиль | Отправить PM | Цитировать


madmasles, благодарю за помощь!
Хотя я уже сделал немного по другому - обошелся без GUIOnEventMode=1 и сделал через While и GUIGetMsg

Вот ответ на мой вопрос:
Код: Выделить весь код
#NoTrayIcon

#include <WindowsConstants.au3> ;Стиль окон GUI
#include <GUIConstantsEx.au3> ;Раширенный стили GUI

Opt("TrayMenuMode", 1 + 2)
Opt("TrayOnEventMode", 1)
Opt("GUIOnEventMode", 1)

TrayCreateItem('Регистрация программы')
TrayItemSetOnEvent(-1, "_Registration")
TrayCreateItem('Выход')
TrayItemSetOnEvent(-1, '_Quit')
TraySetToolTip('Название')
TraySetState(1)


;Программа запущена в трее и выполняет _SomeFunc() раз в 3 секунды
While 1
   _SomeFunc()
   Sleep(3000)
WEnd

Func _SomeFunc()
   ;Основная работа программы
   Sleep(500)
   ConsoleWrite('Основной цикл' & @LF)
EndFunc   ;==>_SomeFunc

;Функция вызова GUI окна. После отработки должно исчезнуть, а программа должна продолжить работать по основному циклу.
Func _Registration()
    GUICreate('Регистрация программы', 370, 225)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_CLOSEClicked")
    GUICtrlCreateButton("ОК", 250, 190, 100, 25)
    GUICtrlSetOnEvent(-1, "_OKButton")
    GUISetState()
EndFunc   ;==>_Registration

Func _CLOSEClicked()
    GUIDelete(@GUI_WinHandle)
EndFunc   ;==>_CLOSEClicked

Func _OKButton()
    MsgBox(4096 + 64, '', 'Регистрация произведена!', 0, @GUI_WinHandle)
    ;Выполнить некоторые операции, закрыть окно и продолжить основной цикл
EndFunc   ;==>_OKButton

Func _Quit()
    Exit
EndFunc   ;==>_Quit

-------
Конструктор RDS_Boot_KIT и комплект Recovery DiskSuite


Отправлено: 15:52, 30-01-2015 | #16