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


ShellExecuteWait

Запуск внешней программы с помощью ShellExecute API и приостанавливает выполнение скрипта до завершения внешней программы.

ShellExecuteWait ( "filename" [, "parameters" [, "workingdir" [, "verb" [, showflag ]]]] )

Параметры

filename Имя или путь запускаемого файла (EXE, .txt, .lnk, и т.д.).
parameters [необязательный] Любые параметры запуска программы. Оставьте пустым ("") чтобы не использовать.
workingdir [необязательный] Рабочий каталог. Оставьте пустым ("") чтобы использовать текущий рабочий каталог.
verb [необязательный] Действие с файлом определяемое пунктом в реестре, может быть одним из следующих:
"open" = Открывает указанный файл. Файл может быть исполняемый, документ или папка
"edit" = Запускает редактор и открывает документ для редактирования. Если файл не является файлом документа, то функция не выполняется
"print" = Печатает указанный файл документа. Если файл не является файлом документа, то функция не выполняется
"properties" = Отображает свойства файла или папки
Смотрите примечания для получения дополнительной информации о поведении, когда не указано действие.
showflag [необязательный] Режим отображения запускаемой программы:
@SW_HIDE = Скрыть окно (или ключ Default)
@SW_MINIMIZE = Свернуть
@SW_MAXIMIZE = Развернуть

Возвращаемое значение

Успех:Возвращает код выхода из программы, которая была запущена.
Ошибка:Возвращает 0 и устанавливает @error не равным нулю.

Примечания

После запуска указанной программы скрипт приостанавливается до завершения внешней программы.

Если действие не указано, то используется действие по умолчанию. Действие по умолчанию указывается в реестре. Если в реестре не указано действие по умолчанию, то используется действие "open" из реестра. Если действие "open" отсутствует, тогда выполняется первое действие из перечисленных в реестре (за исключением Windows 2000).

См. также

ShellExecute, Run, RunWait, RunAs, RunAsWait

Пример

$iReturn = ShellExecuteWait("notepad.exe")

; Скрипт ожидает пока блокнот не закроется
MsgBox(4096, "Программа возвратила код выхода:", $iReturn)

Exit

; Сжатие файла "Boot.ini" в архив "Archive.7z" с паролем "Мой пароль"
ShellExecuteWait(@ProgramFilesDir & '\7-Zip\7z.exe', 'a "' & @HomeDrive & '\Archive.7z" -p"Мой пароль" -mhe -mx9 "' & @HomeDrive & '\Boot.ini"', '', '', @SW_HIDE)

; Сжатие папки "folder" в WIM-архив "Archive.wim"
ShellExecuteWait(@SystemDir & '\imagex.exe', '/capture "' & @HomeDrive & '\folder" "' & @HomeDrive & '\Archive.wim" "my label" /compress maximum', '', '', @SW_HIDE)

; Клонирование раздела жёсткого диска в файл
ShellExecuteWait(@ScriptDir & '\ghost32.exe', '-AUTO -Z1 -SPLIT=1900 -clone,mode=pdump,src=1:1,dst=1:2\ImageHDD\Part1HDD.gho -sure', '', '', @SW_HIDE)

; Запрещает пользователю Administrator доступ к папке "folder"
ShellExecuteWait(@SystemDir & '\cacls.exe', '"' & @ScriptDir & '\folder" /t /e /p "Administrator":N', '', '', @SW_HIDE)
; Разрешает пользователю Administrator доступ к папке "folder"
ShellExecuteWait(@SystemDir & '\cacls.exe', '"' & @ScriptDir & '\folder" /t /e /p "Administrator":F', '', '', @SW_HIDE)

; Модификация иконки в dll-файле
ShellExecuteWait(@ScriptDir & '\ResHacker.exe', '-modify "' & @ScriptDir & '\file.dll", "' & @ScriptDir & '\file.dll", ' & @ScriptDir & '\1.ico, IconGroup,1,', '', '', @SW_HIDE)