|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как запустить команду и не ждать ее окончания? |
|
Как запустить команду и не ждать ее окончания?
|
Пользователь Сообщения: 54 |
Профиль | Отправить PM | Цитировать |
|
Отправлено: 18:16, 21-04-2010 |
Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать Anarasius, только запускать второй скрипт. многопоточность в AutoIt не реализована
|
------- Отправлено: 18:20, 21-04-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Anarasius,
Кажется, Creat0R приводил пример одновременной работы 2-х функций: #include <GUIConstantsEx.au3> ; Opt("GUIOnEventMode", 1) Global $ahCallBack[2], $iPrecent $hGUI = GUICreate("ProgressBar", 400, 300) GUISetOnEvent($GUI_EVENT_CLOSE, "_Main_Events") $Progress = GUICtrlCreateProgress(10, 10, 300, 22) $Status_Label = GUICtrlCreateLabel("0%", 330, 30, 30, 20) $Button = GUICtrlCreateButton("Start", 150, 100, 50, 20) GUICtrlSetOnEvent(-1, "_Main_Events") GUISetState() While 1 Sleep(100) If $iPrecent > 0 Then ;Тут мы вызываем нашу функцию Call("_SomeFunction_Proc") EndIf WEnd Func _Main_Events() Switch @GUI_CtrlId Case $GUI_EVENT_CLOSE _CallBack_Free($ahCallBack) Exit Case $Button If GUICtrlRead($Button) = "Stop" Then GUICtrlSetData($Button, "Start") _CallBack_Free($ahCallBack) Else GUICtrlSetData($Button, "Stop") $ahCallBack = _CallBack_Init("_SetProgress_Proc", 10) EndIf EndSwitch EndFunc ;==>_Main_Events Func _SomeFunction_Proc() While $iPrecent > 0 Sleep(1000) MsgBox(0, "", "Наша функция работает на ряду с прогрессом :)... " & $iPrecent) WEnd EndFunc ;==>_SomeFunction_Proc Func _SetProgress_Proc() $iPrecent += 1 GUICtrlSetData($Progress, Round($iPrecent / 3)) GUICtrlSetData($Status_Label, Round($iPrecent / 3) & "%") If $iPrecent > 300 Then $iPrecent = 0 GUICtrlSetData($Status_Label, "100%") GUICtrlSetData($Button, "Start") _CallBack_Free($ahCallBack) $ahCallBack = 0 Dim $ahCallBack[2] = [-1, -1] EndIf EndFunc ;==>_SetProgress_Proc Func _CallBack_Init($sFuncName, $iTime, $sParam = "") Local $hCallBack = DllCallbackRegister($sFuncName, "int", $sParam) Local $aTimer = DllCall("user32.dll", "uint", "SetTimer", _ "hwnd", 0, "uint", 0, "int", $iTime, "ptr", DllCallbackGetPtr($hCallBack)) Local $ahCallBack[2] = [$hCallBack, $aTimer[0]] Return $ahCallBack EndFunc ;==>_CallBack_Init Func _CallBack_Free($ahCallBack) If $ahCallBack[0] <> -1 Then DllCallbackFree($ahCallBack[0]) If $ahCallBack[1] <> -1 Then DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "uint", $ahCallBack[1]) EndFunc ;==>_CallBack_Free |
Отправлено: 18:36, 21-04-2010 | #3 |
Старожил Сообщения: 206
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:17, 21-04-2010 | #4 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Здравствуйте. Часть кода:После MsgBox команды не выполняються, пока не нажмешь ОК в окне MsgBox. Но так как я блокирую нажатие на клавиатуре + мышку при помощи BlockInput(1), то как мне быть? Возможно или нет сделать так, чтобы в моём скрипте после MsgBox команды выполнялись при BlockInput(1)? Спасибо.
|
|
Отправлено: 10:38, 22-04-2012 | #5 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Использовать SplashTextOn() вместо MsgBox?
|
Отправлено: 13:22, 23-04-2012 | #6 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать |
Отправлено: 03:11, 27-04-2012 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Как выполнить команду командной строки из планировщика задач | Anton1995 | Microsoft Windows 7 | 7 | 12-12-2010 23:21 | |
Разное - Как в ХР копировать (paste) команду из блокнота в командную строку? | serge8 | Microsoft Windows 2000/XP | 2 | 21-06-2010 13:34 | |
[решено] Как запустить случайную команду? | Pozia | AutoIt | 21 | 24-01-2010 20:09 | |
Установка - [решено] Не получается запустить правильно команду на установку из GuiRunOnce | Firebolt | Автоматическая установка Windows 2000/XP/2003 | 4 | 10-03-2009 12:45 | |
Как выполнить команду после установки связи по PPP | Rus1 | Сетевые технологии | 3 | 01-03-2004 22:53 |
|