首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将窗口消息从提升的安装程序进程广播到用户窗口?

如何将窗口消息从提升的安装程序进程广播到用户窗口?
EN

Stack Overflow用户
提问于 2015-01-30 15:23:07
回答 1查看 319关注 0票数 0

有一个InstallShield安装程序

它写入新的环境变量。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session管理器\环境

和电话

SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,.)

此外,它还在“开始”菜单中创建快捷方式。

但是安装之后,它们就不能工作了,因为程序需要新的变量。

安装程序通常要求重新启动系统,

但在某些配置中,它没有,这个问题是偶然发现的。

我在谷歌上搜索的原因可能是UAC和UIPI:

安装程序被提升,并且消息不会到达用户的窗口

启动菜单快捷键也不知道新变量

只有在登录后,他们才开始工作。

所以问题是:

是否可以向所有用户的窗口广播?

我很惊讶,奇怪的是,“广播”不是真正的广播。

还是我漏掉了什么?

顺便说一句

如果打开UAC,似乎Visual Spy++消息监视器无法工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-04 13:49:32

...whoops,我找到了解决办法

只需运行nircmd系统刷新环境即可。

代码语言:javascript
复制
-SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, pEnv, 0, 333, pRes);
+LaunchApplication(SUPPORTDIR ^ "nircmd.exe", "sysrefresh environment", SUPPORTDIR, SW_HIDE, INFINITE, LAAW_OPTION_WAIT);

所以InstallShield出了点问题

关着的不营业的。

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

https://stackoverflow.com/questions/28239052

复制
相关文章

相似问题

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