首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从系统服务启动的NSIS安装程序中以日志用户的身份启动应用程序

从系统服务启动的NSIS安装程序中以日志用户的身份启动应用程序
EN

Stack Overflow用户
提问于 2013-10-25 17:03:11
回答 1查看 402关注 0票数 0

我在NSIS安装程序上按以下顺序工作(除其他外):

  1. 使用UAC来运行提升(这是安装程序所做的其他事情所需要的)
  2. 关闭explorer.exe
  3. 启动explorer.exe (使用Exec命令)
  4. 启动已安装的可执行文件,运行的用户与启动的用户相同(使用Exec命令)

一切都很好。

现在,安装程序被请求由服务启动。这在资源管理器和已安装的程序都是以系统形式启动的。

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

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

你知道怎么才能做到吗?

EN

回答 1

Stack Overflow用户

发布于 2013-10-25 22:19:44

如果您正在重新启动Explorer,因为您正在安装一个shell扩展,那么这是一个有缺陷的想法。shell扩展可以在任何时间(GetOpenFilename()等)加载到任何进程中。您应该重命名正在使用的文件,稍后使用FILE_FLAG_DELETE_ON_CLOSE和/或MoveFileEx删除它。

如果因为其他原因而重新启动资源管理器(为什么?)最好使用来自OpenProcessToken的令牌重新启动它(如果无法获得Explorer令牌,则重新启动WTSQueryUserToken )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19595605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档