语法:
function Exec(const Filename, Params, WorkingDir: String;
const ShowCmd: Integer;
const Wait: TExecWait;
var ResultCode: Integer): Boolean;
描述:
执行指定的可执行文件。使用 Wait 指定 InstExec 是否应该立即返回或等待,直到可执行文件终止或空闲。如果指定的文件已执行则返回 True,否则返回 False。如果返回 True 并且 Wait 是 WaitUntilTerminated,那么 ResultCode 返回执行的文件的退出代码。如果返回 False,那么 ResultCode 指定遇到的错误。使用 SysErrorMessage(ResultCode) 获取错误描述。
注释:
TExecWait 定义为:
TExecWait = (ewNoWait, ewWaitUntilTerminated, ewWaitUntilIdle);
如果你需要运行一个不是可执行文件或批处理文件,则用 ShellExec 函数替换。
不要在文件名参数中包含引号,该函数将自动添加。
当安装程序/卸载程序在 64 位模式运行时,这个函数会在调用 CreateProcess 时禁用 WOW64 文件系统转向功能。
示例:
var
ResultCode: Integer;
begin
// 运行记事本程序并等待它终止
if Exec(ExpandConstant('{win}/notepad.exe'), '', '', SW_SHOW,
ewWaitUntilTerminated, ResultCode) then
begin
// 如果需要处理完成,ResultCode 包含退出代码
end
else
begin
// 如果需要处理失败;ResultCode 包含错误代码
end;
end;