有一个InstallShield安装程序
它写入新的环境变量。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session管理器\环境
和电话
SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,.)
此外,它还在“开始”菜单中创建快捷方式。
但是安装之后,它们就不能工作了,因为程序需要新的变量。
安装程序通常要求重新启动系统,
但在某些配置中,它没有,这个问题是偶然发现的。
我在谷歌上搜索的原因可能是UAC和UIPI:
安装程序被提升,并且消息不会到达用户的窗口
启动菜单快捷键也不知道新变量
只有在登录后,他们才开始工作。
所以问题是:
是否可以向所有用户的窗口广播?
我很惊讶,奇怪的是,“广播”不是真正的广播。
还是我漏掉了什么?
顺便说一句
如果打开UAC,似乎Visual Spy++消息监视器无法工作。
发布于 2015-02-04 13:49:32
...whoops,我找到了解决办法
只需运行nircmd系统刷新环境即可。
-SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, pEnv, 0, 333, pRes);
+LaunchApplication(SUPPORTDIR ^ "nircmd.exe", "sysrefresh environment", SUPPORTDIR, SW_HIDE, INFINITE, LAAW_OPTION_WAIT);所以InstallShield出了点问题
关着的不营业的。
https://stackoverflow.com/questions/28239052
复制相似问题