作者:一生一世0521 | 来源:互联网 | 2023-09-25 04:59
如何在程序中刷新系统的环境变量,比如我在代码中通过注册表在PATH中添加了一个地址,但是必须重启之后,添加的地址才能起作用,也就是要刷新一下,其实只要打开到系统环境变量配置的窗体,点击一下确定就行.问
如何在程序中刷新系统的环境变量,比如我在代码中通过注册表在PATH中添加了一个地址,但是必须重启之后,添加的地址才能起作用,也就是要刷新一下,其实只要打开到系统环境变量配置的窗体,点击一下确定就行.问,如何在程序中通过代码进行实时的刷新,而不需要用户手工重启或去点击那个确定呢?
7 个解决方案
[DllImport("Kernel32.DLL", SetLastError=true)]
public static extern bool SetEnvironmentVariable(string lpName, string lpValue);
设置基于进程的临时环境变量,SetEnvironmentVariable("path","E:\\");
立即可以用,
对了,该方法只是在应用程序中临时添加一个路径吧,不影响到别的应用程序,我是给ORACLE客户端配的环境变量,程序中进行检测服务能否运行,如果只是一个临时环境变量的话恐怕达不到效果吧,能不能就让系统刷新一下环境变量呢?有这个API么?
用SendMessageTimeout 发送WM_SETTINGCHANGE消息通知系统环境已改变
再麻烦一下,能不能给个简单的例子啊?没有用过这个函数
SendMessageTimeout(0xffff,0x001A,null,null,0x00000000,3,0);
没有用啊,里面参数该怎么写呢?