【发布时间】:2023-03-29 03:40:01
【问题描述】:
我的应用程序有一个 MSI 安装程序,它会向路径环境变量写入一些内容,但在我重新启动或手动进入环境变量并单击确定之前不会在 Windows 中“刷新”。
我的客户要求我们解决这个问题。
安装程序有限,但我可以选择在安装完成后运行批处理文件或 VBScript。
有人知道我可以使用的命令或功能吗?
【问题讨论】:
标签: vbscript windows-installer
我的应用程序有一个 MSI 安装程序,它会向路径环境变量写入一些内容,但在我重新启动或手动进入环境变量并单击确定之前不会在 Windows 中“刷新”。
我的客户要求我们解决这个问题。
安装程序有限,但我可以选择在安装完成后运行批处理文件或 VBScript。
有人知道我可以使用的命令或功能吗?
【问题讨论】:
标签: vbscript windows-installer
如果重启不是一个选项,你可以尝试杀死 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 编译它,并且似乎可以正常工作。
【讨论】: