我正在用 C++ 编写一个程序,它将一个新目录添加到系统的路径环境变量中。该目录已成功添加该RegSetValueEx()
功能,但更改并未反映在所有进程中。
我已经尝试过BroadcastSystemMessage()
,并且SendMessageTimeout()
功能如下
LPCTSTR keyPath = TEXT("System\\CurrentControlSet\\Control\\Session Manager\\Environment");
BroadcastSystemMessage(0, 0, WM_SETTINGCHANGE, 0, (LPARAM)keyPath);
和
LPCTSTR keyPath = TEXT("System\\CurrentControlSet\\Control\\Session Manager\\Environment");
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)keyPath, SMTO_BLOCK, 100, NULL);
但是它们都不起作用,但是当我重新启动系统时,更改就会反映出来。
我想要的是
我希望在没有注销的情况下反映所有进程的更改,并且几天前我安装了一个软件(Composer https://getcomposer.org),它添加了它的环境路径并刷新了所有进程的环境变量,而不需要系统重启。
这是我已经查看过的一些有用的链接