C#/.NET应用程序编程开发中如何根据主键读取或者设置(改变)特定的系统环境变量的值?

C#开发 作者: Rector 16 次阅读 · 读完约需 1 分钟 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

在Windows操作系统,使用C#进行应用程序编程开发时,如何检测指定的环境变量是否存在?

如果不存在,又怎样使用C#设置指定环境变量的值呢?

方案一

在.NET Framework中内置了可以操作Windows操作系统的类System.Environment

C#读取指定环境变量名的值的方法GetEnvironmentVariable(),如下:

var value = System.Environment.GetEnvironmentVariable(variable [, Target])

如果要设置一个环境变量,则使用SetEnvironmentVariable()方法,如下:

System.Environment.SetEnvironmentVariable(variable, value [, Target])

备注:可选参数target是EnvironmentVariableTarget类型的枚举,它可以是:Machine,Process或者User。如果省略,默认为Process。EnvironmentVariableTarget.Machine需要使用超级管理员权限。

方案二

如果在控制台应用程序中,使用System.Environment.GetEnvironmentVariable()方法会自动展开环境变量,也就是路径中的文件夹“%SystemRoot%\system32”被重写为“C:\Windows\system32”,如果你不希望路径被重写,则可以:

string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\";
string existingPathFolderVariable = (string)Registry.LocalMachine.OpenSubKey(keyName).GetValue("PATH", "", RegistryValueOptions.DoNotExpandEnvironmentNames);

方案三

另外一种读取和设置Windows操作系统环境变量的方式:

string EnvPath = System.Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine) ?? string.Empty;
if (!string.IsNullOrEmpty(EnvPath) && !EnvPath .EndsWith(";"))
    EnvPath = EnvPath + ';';
EnvPath = EnvPath + @"C:\Test";
Environment.SetEnvironmentVariable("PATH", EnvPath , EnvironmentVariableTarget.Machine);

希望以上方案对你在使用C#语言读取或者设置环境变量的程序开发时有所帮助。

阅读了该文章的人还浏览了...

本文永久链接码友网 » C#/.NET应用程序编程开发中如何根据主键读取或者设置(改变)特定的系统环境变量的值?

发布于: 2019-06-04 10:18:56
分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册