如何在程序中刷新系统的环境变量,比如我在代码中通过注册表在PATH中添加了一个地址,但是必须重启之后,添加的地址才能起作用,也就是要刷新一下,其实只要打开到系统环境变量配置的窗体,点击一下确定就行.问,如何在程序中通过代码进行实时的刷新,而不需要用户手工重启或去点击那个确定呢?

解决方案 »

  1.   

    [DllImport("Kernel32.DLL", SetLastError=true)]
    public static extern bool SetEnvironmentVariable(string lpName, string lpValue);设置基于进程的临时环境变量,SetEnvironmentVariable("path","E:\\");
    立即可以用,
      

  2.   

    对了,该方法只是在应用程序中临时添加一个路径吧,不影响到别的应用程序,我是给ORACLE客户端配的环境变量,程序中进行检测服务能否运行,如果只是一个临时环境变量的话恐怕达不到效果吧,能不能就让系统刷新一下环境变量呢?有这个API么?
      

  3.   

    用SendMessageTimeout  发送WM_SETTINGCHANGE消息通知系统环境已改变
      

  4.   

    SendMessageTimeout(0xffff,0x001A,null,null,0x00000000,3,0);没有用啊,里面参数该怎么写呢?