2013-10-25 37 views
0

我上NSIS安装程序做的工作(除其他事项外)依次推出NSIS安装程序登录的用户:启动应用程序从系统服务

  1. 使用UAC来运行升高(这是需要做其他的事情通过 安装)
  2. 关闭的explorer.exe
  3. 开始的explorer.exe(使用 Exec命令)
  4. 启动安装可执行文件,运行的相同 用户作为一个发射(使用Exec的逗号nd)

一切正常。

现在安装程序被请求由服务启动。 这在两个资源管理器中结束,已安装的程序已作为SYSTEM启动。

如何修改安装程序以使程序以当前登录的用户身份运行?

我知道如果它不是用于步骤2-3我可以使用资源管理器来启动我的可执行文件(这可行!),但这不符合我的需要,因为我也需要停止并启动explorer.exe作为当前用户。

任何想法怎么可以做到这一点?

回答

0

如果因为要安装外壳扩展而重新启动资源管理器,那么这是一个有缺陷的想法。一个shell扩展可以在任何进程中随时加载(GetOpenFilename()等)。您应重命名正在使用的文件,并稍后使用FILE_FLAG_DELETE_ON_CLOSE和/或MoveFileEx将其删除。

如果您重新启动浏览器的一些其他原因(为什么?)最好是与OpenProcessToken令牌重新启动它(或WTSQueryUserToken如果你不能得到探险令牌)

相关问题