RunWait
Запускает внешнюю программу и приостанавливает выполнение скрипта до завершения внешней программы.
RunWait ( "program" [, "workingdir" [, show_flag [, opt_flag ]]] )
Параметры
program | Полный путь к программе (EXE, BAT, COM, или PIF) для запуска (Смотрите примечания). |
workingdir |
[необязательный] Рабочий каталог. Это не путь к программе. |
show_flag |
[необязательный] Режим отображения запускаемой программы: @SW_HIDE = Скрыть окно (или ключ Default) @SW_MINIMIZE = Свернуть окно @SW_MAXIMIZE = Развернуть окно |
opt_flag |
[необязательный] Управление различными опциями взаимодействия процессов родительского и дочернего. 0x10000 ($RUN_CREATE_NEW_CONSOLE) = Дочерний консольный процесс должен быть создан в собственном окне, вместо использования родительского окна. Этот флаг имеет смысл только, когда родительская программа скомпилирована как консольное приложение. |
Возвращаемое значение
Успех: | Возвращает код выхода из программы, которая была запущена. |
Ошибка: | Возвращает 0 и устанавливает @error не равным нулю. |
Примечания
Пути с пробелами должны быть заключены в кавычки.RunWait(@ComSpec & " /c " & 'commandName', "", @SW_HIDE) ; не забывайте " " перед "/c"
См. также
ProcessWait, ProcessWaitClose, Run, ShellExecute, ShellExecuteWait, RunAs, RunAsWaitПример
; Запускает блокнот и ожидает закрытия процесса
$iReturn = RunWait("notepad.exe")
; Скрипт ожидает пока блокнот не закроется
MsgBox(4096, "", 'Программа возвратила код выхода: ' & $iReturn)
Exit
; Сжатие файла "file.dll" в архив "file.dl_"
RunWait('makecab.exe "' & @ScriptDir & '\file.dll"', '', @SW_HIDE)
RunWait('makecab.exe /D Compress=ON /D CompressionMemory=21 /D CompressionType=LZX /D CompressionLevel=7 "' & @ScriptDir & '\file.txt"', '', @SW_HIDE)
; Сжатие файла "Boot.ini" в архив "Archive.7z" с паролем "Мой пароль"
RunWait(@ProgramFilesDir & '\7-Zip\7z.exe a "' & @HomeDrive & '\Archive.7z" -p"Мой пароль" -mhe -mx9 "' & @HomeDrive & '\Boot.ini"', '', @SW_HIDE)
; NTFS-сжатие (для папок использовать /s:путь)
RunWait('compact.exe /c /i "' & @MyDocumentsDir & '\Readme.txt"', '', @SW_HIDE)
; NTFS-разжатие
RunWait('compact.exe /u /i "' & @MyDocumentsDir & '\Readme.txt"', '', @SW_HIDE)
; Создаёт загрузочный ISO-файл
RunWait(@ScriptDir & '\cdimage.exe -l"GrubCD" -g -h -c -j1 -m -b"' & @ScriptDir & '\grubldr.bin" "' & @ScriptDir & '\sourse" "' & @ScriptDir & '\grub_cd.iso"', '', @SW_HIDE)
; Создаёт загрузочный ISO-файл
RunWait(@ScriptDir & '\mkisofs.exe -duplicates-once -volid "GrubCD" -iso-level 4 -b grldr.bin -no-emul-boot -boot-load-seg 0x1000 -hide boot.catalog -hide grldr.bin -o "' & @ScriptDir & '\grub_cd.iso" "' & @ScriptDir & '\sourse"', '', @SW_HIDE)
; Монтирование ISO-файла
RunWait('imdisk.exe -a -t file -o ro -m #: -f "' & @ScriptDir & '\grub_cd.iso"', '', @SW_HIDE)
; Монтирование IMG-файла
RunWait(@ComSpec & ' /C vdk.exe open 0 ' & @ScriptDir & '\Boot.img /p:0 /l:Y: | find /v "http:" | find /v "version" | find /v "Failed"', '', @SW_HIDE)
; Эмуляция загрузки HDD (Fixed, Removable)
RunWait(@ScriptDir & '\qemu.exe -L . -m 512 -hda "\\.\PhysicalDrive0" -boot c')
; Отключение устройства (сетевой карты)
RunWait(@ScriptDir & '\devcon.exe disable @PCI\VEN_10EC&DEV_8168*', '', @SW_HIDE)
; Включение устройства (сетевой карты)
RunWait(@ScriptDir & '\devcon.exe enable @PCI\VEN_10EC&DEV_8168*', '', @SW_HIDE)
; Вывод справки по командам реестра в файл
RunWait(@ComSpec & ' /c reg.exe -h>"' & @ScriptDir & '\text.txt"', '', @SW_HIDE)