我的应用程序有一个MSI安装程序,它将一些内容写入路径环境变量,但在Windows重新启动或手动进入环境变量并单击“确定”之前,不会在Windows中“刷新”。
我的客户要求我们解决此问题。
安装程序有限,但我可以选择在安装完成后运行批处理文件或VBScript。
有人知道我可以使用命令或功能吗?
答案 0 :(得分:6)
如果重启不是一个选项,你可以尝试杀死explorer.exe的每个实例,但我认为这也是不可接受的。
正确的做法是向所有最顶层的窗口发送消息,以证明环境中的更改。但我不知道操作系统中有什么可以做到的。如果你可以包含一个exe并且可以访问c编译器,那么这应该可以解决问题
#include "windows.h"
void main(void) {
SendMessageTimeout(
HWND_BROADCAST,
WM_SETTINGCHANGE,
(WPARAM) NULL,
(LPARAM) "Environment",
SMTO_NORMAL,
1000,
NULL
);
}
我尝试在Windows 7 64中使用mingw / gcc进行编译,但似乎没有问题。