|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] HotKeySet() для одновременного управления несколькими скриптами |
|
[решено] HotKeySet() для одновременного управления несколькими скриптами
|
Новый участник Сообщения: 3 |
Один скрипт запускает другой (или несколько), как сделать чтобы по горячей клавише все скрипты вставали на паузу. Пауза HotKeySet("{PAUSE}", "TogglePause") срабатывает только в первом скрипте, я так понимаю хоткей захватывается им, а в остальных работает только если назначить другую кнопку. Как сделать на одной кнопке ?
|
|
Отправлено: 11:37, 25-08-2009 |
![]() Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Ну проще всего принажатиии кнопки "паузы" внести данные в INI файл.
Другие скрипты будут считывать данные из этого INI файла. Считывать можно этим AdlibEnable |
Отправлено: 12:54, 25-08-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Вариант с INI файлом не совсем подходит, так как в момент нажатия паузы запущенные скрипты будут чего нибудь считать или ожидать или искать в цикле (которых много разных ) , и необходимо будет из всех циклов считывать этот INI файл что замедлит эти циклы (да и переписывать их надо будет). HotKeySet тем и хорош что позволяет вызвать функцию из любого места скрипта.
|
Отправлено: 13:21, 25-08-2009 | #3 |
$AutoITer Сообщения: 446
|
Профиль | Отправить PM | Цитировать Ты не понял. AdlibEnable работает сам по себе. Это замкнутый цикл, который вызывается каждые 100 мс (можно другое время задать) и собственно и служит для проверки чего либо. Мне кажется это хороший вариант...
|
------- Отправлено: 14:18, 25-08-2009 | #4 |
![]() Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Да да это хороший вариант.
Незабывем про кнопку ... ![]() |
|
Отправлено: 14:33, 25-08-2009 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Ну зачем же Ini, можно устроить интеракцию через GUI окно:
#include <GuiConstants.au3> Global $iPaused = False HotKeySet("{Pause}", "_TogglePause") $hGUI = GUICreate("Test Script", 300, 200, 510) $Button = GUICtrlCreateButton("Button", 20, 40, 60, 20) GUISetState(@SW_SHOW, $hGUI) _RunScript_Proc("Child Script") While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func _RunScript_Proc($sTitle) $sScript = _ '#NoTrayIcon' & @CRLF & _ '#include <GuiConstants.au3>' & @CRLF & _ 'Global $iPaused = False' & @CRLF & _ '' & @CRLF & _ 'GUICreate("' & $sTitle & '", 300, 200, 200)' & @CRLF & _ '$nInteract_Edit = GUICtrlCreateEdit("", -100, -100, 50, 20)' & @CRLF & _ '' & @CRLF & _ 'GUISetState(@SW_SHOW)' & @CRLF & _ '' & @CRLF & _ 'While 1' & @CRLF & _ ' Switch GUIGetMsg()' & @CRLF & _ ' Case $GUI_EVENT_CLOSE' & @CRLF & _ ' Exit' & @CRLF & _ ' EndSwitch' & @CRLF & _ ' ' & @CRLF & _ ' If GUICtrlRead($nInteract_Edit) <> "" Then' & @CRLF & _ ' GUICtrlSetData($nInteract_Edit, "")' & @CRLF & _ ' _TogglePause()' & @CRLF & _ ' EndIf' & @CRLF & _ 'WEnd' & @CRLF & _ '' & @CRLF & _ 'Func _TogglePause()' & @CRLF & _ ' $iPaused = Not $iPaused' & @CRLF & _ ' ' & @CRLF & _ ' MsgBox(64, "", "_TogglePause from [' & $sTitle & '] script: " & $iPaused)' & @CRLF & _ ' ' & @CRLF & _ ' While $iPaused' & @CRLF & _ ' Sleep(10)' & @CRLF & _ ' If GUICtrlRead($nInteract_Edit) <> "" Then ExitLoop' & @CRLF & _ ' WEnd' & @CRLF & _ 'EndFunc' & @CRLF $hFile = FileOpen(@TempDir & "\~Au3_Script.tmp", 2) FileWrite($hFile, $sScript) FileClose($hFile) Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @TempDir & '\~Au3_Script.tmp"') EndFunc Func _TogglePause() $iPaused = Not $iPaused ControlSetText("Child Script", "", "Edit1", "_TogglePause") Sleep(100) MsgBox(64, "", "_TogglePause from [" & WinGetTitle($hGUI) & "] script: " & $iPaused) While $iPaused Sleep(10) WEnd 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 Отправлено: 17:05, 25-08-2009 | #6 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Спасибо, работает, если бы AdlibEnable ещё бы неприостанавливал скрипт было бы вообще замечательно
![]() Eщё подскажите пожалуйста как вместо INI прикрутить События (Event), где на русском можно почитать про CreateEvent(), SetEvent() и их параметры или может быть пример приведёте. |
Отправлено: 17:17, 25-08-2009 | #7 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать А ещё как вариант, проверять в цикле других скриптов через _IsPressed()
![]() |
------- Альберт Эйнштейн 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 Отправлено: 17:23, 25-08-2009 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Javascript: конфликт между двумя скриптами | morgan1991 | Вебмастеру | 5 | 23-06-2013 05:01 | |
[решено] Активация Script Paused через HotKeySet | sashadeg | AutoIt | 4 | 28-06-2009 16:40 | |
[решено] Временное отключение HotKeySet | sashadeg | AutoIt | 13 | 28-06-2009 07:52 | |
Есть ли программы для одновременной работы с несколькими TV-тюнерами? | dihlof0s | Программное обеспечение Windows | 0 | 25-06-2008 08:06 | |
Преимущества CGI для одновременного конекта N посетителей | FADE | Вебмастеру | 19 | 30-06-2004 18:44 |
|