Windows Inno安装程序始终在Pascal脚本代码中以32位模式启动PowerShell

Windows Inno安装程序始终在Pascal脚本代码中以32位模式启动PowerShell,windows,installation,inno-setup,pascalscript,wow64,Windows,Installation,Inno Setup,Pascalscript,Wow64,我想在Inno设置的ssPostInstall步骤中使用PowerShell(64位版本),但它总是打开32位PowerShell 正如您在我的脚本中看到的,我的Inno设置被配置为64位应用程序。 启动安装程序时,我可以在任务管理器中看到它作为32位应用程序运行 此外,将打开的PowerShell处于32位模式 以下是我的Inno Stup脚本: [设置] 架构sallow=x64 体系结构安装64位模式=x64 PrivilegesRequired=admin [守则] 过程游标步骤已更

我想在Inno设置的
ssPostInstall
步骤中使用PowerShell(64位版本),但它总是打开32位PowerShell

正如您在我的脚本中看到的,我的Inno设置被配置为64位应用程序。 启动安装程序时,我可以在任务管理器中看到它作为32位应用程序运行

此外,将打开的PowerShell处于32位模式

以下是我的Inno Stup脚本:

[设置]
架构sallow=x64
体系结构安装64位模式=x64
PrivilegesRequired=admin
[守则]
过程游标步骤已更改(CurrentStep:TSetupStep);
变量
i、 结果代码,错误代码:整数;
findRec:TFindRec;
isInstallationCmdSuccessful:布尔值;
folderNameOfUpdateIni:字符串;
返回码:布尔;
开始
如果CurrentStep=ssPostInstall,则开始
日志(“启动安装后步骤,调用install.ps1”);
返回代码:=ShellExec('open',ExpandConstant('{sys}\WindowsPowerShell\v1.0\powershell.exe'),'','',SW_SHOWNORMAL,ewwaitUnterminated,ErrorCode);
如果(ReturnCode=True),则
日志('安装后返回true')
其他的
日志(“安装后返回false”);
日志(“启动安装后步骤,调用install.ps1”);
返回代码:=ShellExec('open',ExpandConstant('{syswow64}\WindowsPowerShell\v1.0\powershell.exe'),'','',SW_SHOWNORMAL,ewwaitunterminated,ErrorCode);
如果(ReturnCode=True),则
日志('安装后返回true')
其他的
日志(“安装后返回false”);
结束;
结束;

如何强制Inno安装程序打开64位PowerShell?

如果要允许Pascal脚本代码函数使用64位
System32
文件,请使用

而且您也不能使用
ShellExec
,您需要使用

OldState:=EnableFsRedirection(False);
尝试
返回代码:=
Exec('powershell.exe','','SW_SHOWNORMAL,ewwaitunterminated,ErrorCode);
最后
EnableFsRedirection(旧状态);
结束;

顺便说一句,
体系结构安装64位模式
不会/无法使Inno安装程序作为64位应用程序运行。Inno安装程序是32位应用程序,不管是什么