Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix MSI安装程序:帮助使用基于服务的安装程序中的CustomAction运行基于UI的EXE_Wix_Windows Installer - Fatal编程技术网

Wix MSI安装程序:帮助使用基于服务的安装程序中的CustomAction运行基于UI的EXE

Wix MSI安装程序:帮助使用基于服务的安装程序中的CustomAction运行基于UI的EXE,wix,windows-installer,Wix,Windows Installer,我已经使用Wix Toolset 3.8创建了一个MSI安装程序包,它由在“系统”帐户下运行的第三方安装程序服务运行。我的问题是,当尝试使用自定义操作从我的MSI安装程序启动和运行已安装的可执行文件时,它也会在系统帐户下运行,而不是在当前登录的管理员帐户下运行。我花了几个小时在网上研究,从我所读到的内容来看,指定Impersonate=“yes”将在启动安装程序的帐户下运行特定的自定义操作,但问题在于此。由于第三方安装程序服务是从系统帐户运行的,因此指定Impersonate=“yes”也会在系

我已经使用Wix Toolset 3.8创建了一个MSI安装程序包,它由在“系统”帐户下运行的第三方安装程序服务运行。我的问题是,当尝试使用自定义操作从我的MSI安装程序启动和运行已安装的可执行文件时,它也会在系统帐户下运行,而不是在当前登录的管理员帐户下运行。我花了几个小时在网上研究,从我所读到的内容来看,指定Impersonate=“yes”将在启动安装程序的帐户下运行特定的自定义操作,但问题在于此。由于第三方安装程序服务是从系统帐户运行的,因此指定Impersonate=“yes”也会在系统帐户下运行自定义操作,对吗?至少我的测试显示了这一点。我的MSI安装程序的一点背景知识:

InstallScope="perMachine"

<CustomAction Id="StartAction" 
              Directory="FOLDER" 
              ExeCommand ='cmd.exe /c start MYEXE.exe /tray' 
              Execute="immediate" 
              Impersonate="yes" 
              Return="check"/>

 <InstallExecuteSequence>
      <Custom Action='StartAction' Before='InstallFinalize'>NOT Installed</Custom>
 </InstallExecuteSequence>
InstallScope=“perMachine”
未安装
我已经尝试了执行的“延迟”和“立即”,以及将“模拟”设置为“是”和“否”。有什么方法可以实现这一点吗?我考虑过使用runas命令,但我不知道启动安装的用户帐户的密码


谢谢

EXE文件在做什么?您是否可以控制应用程序,以便将逻辑从该外部EXE移动到主应用程序的启动逻辑中

除此之外,您可以通过注册这样的EXE文件,以便每个用户运行一次。你也可以找到

这里还有一个链接指向ActiveSetup的说明(我更喜欢上面的链接):


也可以在这里看到这些答案:

EXE是负责控制MSI安装驱动程序的音频设备的第三方应用程序。使用ActiveSetup似乎只在用户下次登录时启动指定的应用程序(允许您“在登录时每个配置文件运行一次”),除非我有误解。我正在尝试在安装完成后立即运行此应用程序,而不必注销然后重新启动。我已经写信给HKLM\Software\Microsoft\Windows\CurrentVersion\Run,在用户登录时启动应用程序。我想我可能终于找到了我要找的东西。我不知道看似简单的任务其实非常复杂。也许有一个更简单的方法,但是对于任何感兴趣的人来说,都可以看看这些链接。希望有人能确认这是否是实现这一目标的正确/最简单的方法。和