C# 实现设置系统环境变量设置
2014-11-18 11:47
393 查看
以前实现系统环境变量设置时是要在电脑属性--高级--环境变量设置,实现方式主要有2种,
修改注册表,添加环境变量
调用系统Kernel32.DLL函数,设置环境变量
注册表方式,是要修改注册表的位置是[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
代码我已经封装,注意要引入命名空间
如下:
Kernel32.DLL内有SetEnvironmentVariable函数用于设置系统环境变量
C#调用要用DllImport,代码封装如下:
修改注册表,添加环境变量
调用系统Kernel32.DLL函数,设置环境变量
注册表方式,是要修改注册表的位置是[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
代码我已经封装,注意要引入命名空间
using Microsoft.Win32; using System.Runtime.InteropServices;
如下:
class SysEnvironment { /// <summary> /// 获取系统环境变量 /// </summary> /// <param name="name"></param> /// <returns></returns> public static string GetSysEnvironmentByName(string name) { string result = string.Empty; try { result = OpenSysEnvironment().GetValue(name).ToString();//读取 } catch (Exception) { return string.Empty; } return result; } /// <summary> /// 打开系统环境变量注册表 /// </summary> /// <returns>RegistryKey</returns> private static RegistryKey OpenSysEnvironment() { RegistryKey regLocalMachine = Registry.LocalMachine; RegistryKey regSYSTEM = regLocalMachine.OpenSubKey("SYSTEM", true);//打开HKEY_LOCAL_MACHINE下的SYSTEM RegistryKey regControlSet001 = regSYSTEM.OpenSubKey("ControlSet001", true);//打开ControlSet001 RegistryKey regControl = regControlSet001.OpenSubKey("Control", true);//打开Control RegistryKey regManager = regControl.OpenSubKey("Session Manager", true);//打开Control RegistryKey regEnvironment = regManager.OpenSubKey("Environment", true); return regEnvironment; } /// <summary> /// 设置系统环境变量 /// </summary> /// <param name="name">变量名</param> /// <param name="strValue">值</param> public static void SetSysEnvironment(string name, string strValue) { OpenSysEnvironment().SetValue(name, strValue); } /// <summary> /// 检测系统环境变量是否存在 /// </summary> /// <param name="name"></param> /// <returns></returns> public bool CheckSysEnvironmentExist(string name) { if (!string.IsNullOrEmpty(GetSysEnvironmentByName(name))) return true; else return false; } /// <summary> /// 添加到PATH环境变量(会检测路径是否存在,存在就不重复) /// </summary> /// <param name="strPath"></param> public static void SetPathAfter(string strHome) { string pathlist ; pathlist = GetSysEnvironmentByName("PATH"); //检测是否以;结尾 if (pathlist.Substring(pathlist.Length - 1, 1) != ";") { SetSysEnvironment("PATH", pathlist + ";"); pathlist = GetSysEnvironmentByName("PATH"); } string[] list = pathlist.Split(';'); bool isPathExist = false; foreach (string item in list) { if (item == strHome) isPathExist = true; } if (!isPathExist) { SetSysEnvironment("PATH", pathlist +strHome+ ";"); } } public static void SetPathBefore(string strHome) { string pathlist; pathlist = GetSysEnvironmentByName("PATH"); string[] list = pathlist.Split(';'); bool isPathExist = false; foreach (string item in list) { if (item == strHome) isPathExist = true; } if (!isPathExist) { SetSysEnvironment("PATH", strHome + ";" + pathlist); } } public static void SetPath(string strHome) { string pathlist; pathlist = GetSysEnvironmentByName("PATH"); string[] list = pathlist.Split(';'); bool isPathExist = false; foreach (string item in list) { if (item == strHome) isPathExist = true; } if (!isPathExist) { SetSysEnvironment("PATH", pathlist + strHome + ";" ); } } }
Kernel32.DLL内有SetEnvironmentVariable函数用于设置系统环境变量
C#调用要用DllImport,代码封装如下:
class SetSysEnvironmentVariable { [DllImport("Kernel32.DLL ", SetLastError = true)] public static extern bool SetEnvironmentVariable(string lpName, string lpValue); public static void SetPath(string pathValue) { string pathlist; pathlist = SysEnvironment.GetSysEnvironmentByName("PATH"); string[] list = pathlist.Split(';'); bool isPathExist = false; foreach (string item in list) { if (item == pathValue) isPathExist = true; } if (!isPathExist) { SetEnvironmentVariable("PATH", pathlist + pathValue+";"); } } }
相关文章推荐
- C# 实现设置系统环境变量设置
- C# 实现设置系统环境变量设置
- C# 实现设置系统环境变量设置
- C# 实现设置系统环境变量设置
- 通过批处理bat设置系统环境变量的实现代码
- 通过批处理bat设置系统环境变量的实现代码
- 通过批处理bat设置系统环境变量的实现代码,bat环境变量
- 使用VBScript实现设置系统环境变量的小程序
- C#操作注册表,设置系统环境变量
- C#,net设置系统环境变量路径,如java_home
- Windos下用setx.exe命令行模式下永久设置系统环境变量
- 查看系统环境变量(sysgen_xxx?)设置情况
- 配置C#的系统环境变量的方法
- Ubuntu设置环境变量错误导致系统无法登录解决方法
- c# 操作当前应用程序所在路径以及系统环境变量
- Linux系统下设置环境变量(PATH)的方法
- Windos下用setx.exe命令行模式下永久设置系统环境变量
- 设置系统环境变量立即生效的VBS脚本
- 环境变量设置错误导致无法登陆系统
- Linux 环境变量知识大全之二——系统环境变量的设置