Функция RunWait

         Описание функции


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 не равным нулю.

Примечания

Пути с пробелами должны быть заключены в кавычки.

Для запуска DOS (console) команд, попробуйте

RunWait(@ComSpec & " /c " & 'commandName', "", @SW_HIDE)    ; не забывайте " " перед "/c"


После запуска указанной программы скрипт приостанавливается до завершения внешней программы. Чтобы запустить программу, а затем немедленно продолжить выполнение скрипта используйте Run().

Некоторые программы выполнят возврат немедленно, даже если они все еще выполняются; эти программы порождают другие процессы - вы можете использовать функцию ProcessWaitClose() а таких случаях.

См. также

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)