Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Требуется помощь со скриптом (http://forum.oszone.net/showthread.php?t=346433)

Malukov.Dmitry 14-09-2020 14:53 2934007

Требуется помощь со скриптом
 
Добрый день! В 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 2934064

Malukov.Dmitry, непонятно — в чём проблема. Поскольку у Вас нет ни:
Цитата:

Цитата Malukov.Dmitry
при запуске второго процесса wait.exe с ключом, допустим, "-S" - были завершены все процессы с этим именем файла »

ни:
Цитата:

Цитата Malukov.Dmitry
скрипт ждет запуска определенного процесса (допустим - Explorer.exe) и завершает работу. »


iglezz 15-09-2020 11:37 2934105

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


Время: 07:04.

Время: 07:04.
© OSzone.net 2001-