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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Вопрос по TrayItemSetOnEvent: как выйти из скрипта в данной ситуации?

Ответить
Настройки темы
[решено] Вопрос по TrayItemSetOnEvent: как выйти из скрипта в данной ситуации?

Старожил


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

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


Добрый день! Для иллюстрации проблемы я сделал маленький скрипт:
читать дальше »

Код: Выделить весь код
$ExitLoop=1
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)
wend

Func StartLoop()
m("StartLoop() starts")
if $ExitLoop=1 then
$ExitLoop=0
else
$ExitLoop=1
endif
while not $ExitLoop
sleep(100)
wend
EndFunc

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


Проблема вот в чем: когда щелкаешь на опцию трея "StartLoop", программа перестает реагировать на все остальные команды юзера через меню трея (потому что StartLoop зацикливает там все). А вот HotKeySet работает прекрасно вне зависимости от того, была ли нажата кнопка "StartLoop". Вопрос: как заставить прогу реагировать на команды через меню трея после вызова функции "StartLoop"?

Отправлено: 07:45, 07-10-2009

 

Аватара для 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Вопрос по TrayItemSetOnEvent: как выйти из скрипта в данной ситуации?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как убрать иконки из трея в данной ситуации? evg64 AutoIt 18 02-10-2022 20:42
Забанили на сайте - как выйти из ситуации? _Snake_ Хочу все знать 42 01-04-2011 16:13
[решено] Ваше мнение о данной конфигурации Beavis Выбор отдельных компонентов компьютера и конфигурации в целом 34 16-09-2008 15:16
DC++ хабов нет на Акадо. Как быть в этой ситуации откуда кач на нормальной скорости ? Rock Хочу все знать 5 20-04-2008 12:52
как себя вести в сложной ситуации alfstar Юмор 2 10-09-2007 21:11




 
Переход