美文网首页
修改环境变量刷新到所有进程

修改环境变量刷新到所有进程

作者: laravel | 来源:发表于2017-07-06 22:27 被阅读107次

    每次修改系统环境变量以后需要重启explorer.exe进程,使之生效,但是在安装python的时候,发现,并没有重启explorer.exe但是新打开cmd竟然可以有python命令了,在好奇心的驱使下,百度了一下,发现,windows有一个特殊的消息WM_SETTINGCHANGE,进程在收到该消息时,应该更新自身的环境变量,而且explorer.exe进程,很听话的监听处理了这一消息,所以我们只需要在修改完环境变量以后广播这一消息,大部分的系统进程,就都可以更新到最新的环境变量副本了(即少数变态进程,如:cm.exe进程除外)。
    为了发送这一消息,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;
}

相关文章

  • 修改环境变量刷新到所有进程

        每次修改系统环境变量以后需要重启explorer.exe进程,使之生效,但是在安装python的时候,发现...

  • shell子进程修改父进程的环境变量值

    shell子进程修改父进程的环境变量值 脚本中的环境变量通过 export 导出,脚本中调用其他脚本使用这个变量 ...

  • 命令行

    修改root用户密码: 环境变量设置: 超级管理员: 查看进程

  • 22.进程环境

    环境变量 (1)export命令查看环境变量(2)进程环境表介绍.每一个进程中都有一份所有环境变量构成的一个表格,...

  • Linux 环境变量详解

    问题: 用python去修改linux环境变量为何无效? 先简单解释一下环境变量。 环境变量可以看作是进程的一些元...

  • linux命令 ps

    ps -ef (e环境变量,f程序间的关系 ) ps -A显示所有进程 ps -AH 树状结构显示所有进程 ps ...

  • deepin 环境变量和启动项设置

    环境变量 etc/profile文件中修改环境变量,在这里修改的内容是对所有用户起作用的 事例模板 **让环境变量...

  • Windows环境变量设置其实可以很简单

    查看当前所有可用的环境变量 set 查看某个环境变量:查看path变量的值 set path 修改环境变量(注意:...

  • Linux自定义环境变量

    1 通过修改"环境变量定义文件"来修改环境变量。 $vi /etc/profile #修改环境变量定义...

  • 给Rubyist的环境变量指南

    每个进程拥有自己的一组环境变量 每个程序都至少有一个进程,每个进程有一组环境变量。环境变量随着进程关闭而消失,当你...

网友评论

      本文标题:修改环境变量刷新到所有进程

      本文链接:https://www.haomeiwen.com/subject/wqmkhxtx.html