【发布时间】:2014-11-12 19:56:42
【问题描述】:
我在 Installshield 中创建了一个 MSI 项目,并添加了我的 installscript 方法作为安装某些支持驱动程序项的自定义操作。我正在使用“LaunchAppAndWait”方法来启动带有参数的可执行文件。
LaunchAppAndWait("C:\\Windows\\System32\\RUNDLL32.exe", szWBW, LAAW_OPTION_WAIT);
szWBW 是我传递给 EXE 文件的参数字符串。当我以管理员身份通过命令行执行此可执行文件时,它工作正常。如果没有管理员权限,它将失败。
当我运行我的 MSI 设置时,此行将无法正常运行并返回类似“无法完成操作 0x000007b”错误消息。所以为了解决这个问题,我想以管理员身份运行它。到目前为止,我找不到任何解决方案来以管理员身份运行此特定行。
我也尝试了另一种方法来运行 EXE。使用以下内容创建了 bat 文件
cd C:\Windows\System32\
C:\Windows\System32\RUNDLL32.exe szWBW
然后我通过转换器工具将其制作为 EXE。在我的项目中从自定义操作调用这个 EXE。此方法在 EXE 设置中运行良好。因为 EXE 安装程序以管理员权限运行我的 EXE。但是 MSI 没有这样做并且无法正常运行。
(注意:我必须需要 MSI 设置而不是 EXE 设置。)
请任何人给我解决这个问题的解决方案。
提前致谢。
【问题讨论】:
-
自定义操作可能是即时的,因此不会以提升的方式运行。改为延迟,这是开始的地方,并基于 [WindowsFokder] 属性 msdn.microsoft.com/en-us/library/aa372816(v=vs.85).aspx 的路径,如果这是 64 位系统上的 32 位设置,您可能会遇到问题。
标签: windows-installer installshield installscript