环境:安装盾2009年总理,Vista的(家庭版/高级版,旗舰版)

我有一个自定义操作在2009年安装盾会在安装过程中开火。如果SETUP.EXE运行的很好,但在Vista中运行时MyApplication.msi(请在其他操作系统的自定义操作的工作只是罚款注)显示异常运行自定义操作。自定义动作刚刚执行与命令行参数一个exe。

这EXE在于OS执行就好单独。但是,当MyApplication.msi想要运行它,它示出了一个异常。

我想:MyApplication.msi不能给该自定义操作(.exe文件)适当的特权(行政)与运行。但Setup.exe便。

怎样才可以解决......?


在自定义操作向导我的自定义动作,“在脚本执行”价值我选择了“延迟执行在系统上下文”

有帮助吗?

解决方案

您没有状态,但它听起来像是你的SETUP.EXE有需要管理员权限(如果你得到一个UAC提示,当你的setup.exe,这样的话)的清单。这听起来也可能你正试图从你的自定义操作运行exe也有类似的管理权限的要求。在MSI一个exe自定义动作使用的CreateProcess不能提高。

如果你的行动在UI顺序运行,你需要使用的ShellExecute或的ShellExecuteEx以某种方式 - 这可以使用LaunchApplication旗LAAW_OPTION_USE_SHELLEXECUTE的安装InstallScript自定义操作来完成,或者用C ++调用的ShellExecuteEx直接

如果您的行动执行顺序运行,你应该将其标记“延迟的系统语境”,所以它是从提升的背景下开始启动。这通常是优选的(至少在用户体验方面),因为它避免了额外的UAC提示,其他方法会显示。然而任何递延行动具有局限性(如最小的属性访问),您可能需要熟悉。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top