Inno setup Inno安装脚本-安装前运行exe

Inno setup Inno安装脚本-安装前运行exe,inno-setup,pascalscript,Inno Setup,Pascalscript,我想在安装之前运行一个应用程序,我在Inno Setup ScriptPascal上使用以下代码: function InitializeSetup():boolean; var ResultCode: integer; begin // Launch Notepad and wait for it to terminate if ExecAsOriginalUser('{src}\MyFolder\Injector.exe', '', '', SW_SHOW, ewWaitUntil

我想在安装之前运行一个应用程序,我在Inno Setup ScriptPascal上使用以下代码:

function InitializeSetup():boolean;
var
  ResultCode: integer;
begin

 // Launch Notepad and wait for it to terminate
 if ExecAsOriginalUser('{src}\MyFolder\Injector.exe', '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
 begin
// handle success if necessary; ResultCode contains the exit code
 end
 else begin
   // handle failure if necessary; ResultCode contains the error code
 end;

 // Proceed Setup
  Result := True;

end;
当我使用{win}\notepad.exe时,它可以工作,但当我使用{src}\MyFolder\Injector.exe时,安装程序不会打开我的程序并继续安装

注:喷油器有app.manifest,其中有“requireAdministrator”。但是,此应用程序应以管理员身份运行

那么怎么了?

在代码中使用{src}等值时,需要使用ExpandConstant函数

但是,InitializeSetup也太早,无法运行安装任务。您应该将此代码移动到CurStepChangedssInstall中

此外,如果它需要管理员权限,则必须使用Exec而不是ExecAsOriginalUser运行。

在代码中使用{src}等值时,需要使用ExpandConstant函数

但是,InitializeSetup也太早,无法运行安装任务。您应该将此代码移动到CurStepChangedssInstall中


此外,如果它需要管理员权限,则必须使用Exec而不是ExecAsOriginalUser运行。

这可能适用于您。。。我相信这个问题是因为在整个路径中有空格…这应该通过引用路径来克服

Exec('cmd.exe','/c "'+ExpandConstant('{src}\MyFolder\Injector.exe')+'"', '',SW_SHOW,ewWaitUntilTerminated, ResultCode);

干杯。

这可能对你有用。。。我相信这个问题是因为在整个路径中有空格…这应该通过引用路径来克服

Exec('cmd.exe','/c "'+ExpandConstant('{src}\MyFolder\Injector.exe')+'"', '',SW_SHOW,ewWaitUntilTerminated, ResultCode);

干杯。

我将我的应用复制/粘贴到桌面,当我使用此选项时:“C:\Users\Oceanjack\Desktop\Injector.exe”不起作用。我将我的应用复制/粘贴到桌面,当我使用此选项时:“C:\Users\Oceanjack\Desktop\Injector.exe”不起作用。请注意,安装任务之前运行的首选位置是PrepareToInstall事件函数。这还可以在主安装开始之前优雅地处理错误和重新启动请求。请注意,安装任务之前运行的首选位置是PrepareToInstall事件函数。这还可以在主安装开始之前优雅地处理错误和重新启动请求。