Windows 7安装程序,刷新路径环境变量

Jon*_*sen 2 vbscript windows-installer

我有一个针对我的应用程序的MSI安装程序,它将一些内容写入路径环境变量,但是在Windows重新启动或手动进入环境变量并单击"确定"之前,它不会在Windows中"刷新".

我的客户要求我们解决这个问题.

安装程序有限,但我可以选择在安装完成后运行批处理文件或VBScript.

有人知道我可以使用命令或功能吗?

MC *_* ND 6

如果重启不是一个选项,你可以尝试杀死explorer.exe的每个实例,但我认为这也是不可接受的.

正确的做法是向所有最顶层的窗口发送一条消息,以证明环境中的变化.但我不知道操作系统中有什么可以做到的.如果你可以包含一个exe并且可以访问ac编译器,那么这应该可以解决问题

#include "windows.h"

void main(void) {
    SendMessageTimeout(
        HWND_BROADCAST,
        WM_SETTINGCHANGE,
        (WPARAM) NULL,
        (LPARAM) "Environment",
        SMTO_NORMAL,
        1000,
        NULL
    );
}
Run Code Online (Sandbox Code Playgroud)

我尝试在Windows 7 64中用mingw/gcc编译它,似乎没有问题.