????每次修改系統(tǒng)環(huán)境變量以后需要重啟explorer.exe
進(jìn)程跋理,使之生效甲雅,但是在安裝python的時候昨稼,發(fā)現(xiàn)瞒瘸,并沒有重啟explorer.exe
但是新打開cmd
竟然可以有python
命令了侣诺,在好奇心的驅(qū)使下殖演,百度了一下,發(fā)現(xiàn)年鸳,windows
有一個特殊的消息WM_SETTINGCHANGE
趴久,進(jìn)程在收到該消息時,應(yīng)該更新自身的環(huán)境變量搔确,而且explorer.exe
進(jìn)程彼棍,很聽話的監(jiān)聽處理了這一消息,所以我們只需要在修改完環(huán)境變量以后廣播這一消息膳算,大部分的系統(tǒng)進(jìn)程座硕,就都可以更新到最新的環(huán)境變量副本了(即少數(shù)變態(tài)進(jìn)程,如:cm.exe
進(jìn)程除外)涕蜂。
????為了發(fā)送這一消息华匾,C語言的demo程序如下:
#include "windows.h"
#include "stdio.h"
#pragma comment(lib,"user32.lib")
int main(int argc, char const *argv[])
{
long dwReturnValue=0;
SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)"Environment",SMTO_ABORTIFHUNG,5000,&dwReturnValue);
puts("Environment Variables updated");
return 0;
}