PDA

Показать полную графическую версию : Требуется помощь со скриптом


Malukov.Dmitry
14-09-2020, 14:53
Добрый день! В AutoIT новичок, как не пытаюсь вникнуть в справку - не могу реализовать следующий момент:

#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WinAPIConstants.au3>

Opt("GUIOnEventMode", 1)
AutoItSetOption ( "TrayIconHide" , 1 )
Global $g_idExit
_Main()

Func _Main()

GUICreate("", 250, 70, -1, -1, 0x804008C0)

GUICtrlCreateLabel("Пожалуйста подождите...", 60, 25)
GUICtrlCreateIcon("regedit.exe", 0, 15, 13)
GUICtrlSetTip(-1, '#Region ICON')
GUISetState() ; display the GUI
While 1
Sleep(1000)
WEnd
EndFunc ;==>_Main

; --------------- Functions ---------------
Func OnExit()

Exit
EndFunc ;==>OnExit

Простое окно-заглушка, cкрипт скомпилирован в файл wait.exe. Необходимо, чтобы при запуске второго процесса wait.exe с ключом, допустим, "-S" - были завершены все процессы с этим именем файла. Или альтернативный вариант: скрипт ждет запуска определенного процесса (допустим - Explorer.exe) и завершает работу. Окно отображается до завершения работы скрипта.

Iska
14-09-2020, 23:38
Malukov.Dmitry, непонятно — в чём проблема. Поскольку у Вас нет ни:
при запуске второго процесса wait.exe с ключом, допустим, "-S" - были завершены все процессы с этим именем файла »
ни:
скрипт ждет запуска определенного процесса (допустим - Explorer.exe) и завершает работу. »

iglezz
15-09-2020, 11:37
Malukov.Dmitry,
Работа с параметрами описана в разделе справки "Using AutoIt\Command Line Parameters"
Реализовать для одного параметра можно таким образом:#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WinAPIConstants.au3>

Opt("GUIOnEventMode", 1)
AutoItSetOption("TrayIconHide", 1)

Global Const $MYGUITITLE = "MyPleaseWaitGUI"

_Main()

Func _Main()
If $CmdLine[0] > 0 And $CmdLine[1] = "-S" Then
While ProcessClose(WinGetProcess($MYGUITITLE))
WEnd
Exit
EndIf

GUICreate($MYGUITITLE, 250, 70, -1, -1, 0x804008C0)
GUICtrlCreateLabel("Пожалуйста подождите...", 60, 25)
GUICtrlCreateIcon("regedit.exe", 0, 15, 13)
GUICtrlSetTip(-1, '#Region ICON')
GUISetState()

While 1
Sleep(1000)
WEnd
EndFunc ;==>_Main

Для реализации второго сценария с ожиданием некоего процесса достаточно в цикл While 1 добавитьIf ProcessExists("process.exe") Then Exit




© OSzone.net 2001-2012