Имя пользователя:
Пароль:
 

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

Аватара для Creat0R

Must AutoIt


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

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


Цитата evg64:
программа перестает реагировать на все остальные команды юзера через меню трея »
Потому что обработка событии продолжается только после завершения вызванной событием функции - в этом случае лучше всего обрабатывать события в главном цикле:

Код: Выделить весь код
$iLoop = False

Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)
HotKeySet("{esc}", "ExitFunc")

$CurrentTime = TrayCreateItem("StartLoop")
TrayItemSetOnEvent(-1, "StartLoop")
$Exit = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "ExitFunc")

While 1
    Sleep(100)

    If $iLoop Then Loop_Proc()
WEnd

Func StartLoop()
    ;m("StartLoop() starts")

    $iLoop = Not $iLoop

    $sText = "StartLoop"
    If $iLoop Then $sText = "StopLoop"

    TrayItemSetText($CurrentTime, $sText)
EndFunc

Func Loop_Proc()
    While Not $iLoop
        Sleep(100)
    WEnd
EndFunc

Func ExitFunc()
    ;m("ExitFunc() starts")
    Exit
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:16, 07-10-2009 | #2