@H_
404_0@我想用C#程序来扩展当前的PATHvariables。
在这里我有几个问题:@H_
404_0@使用GetEnvironmen
tvariable("PATH",Environmen
tvariableTarget.Machine)replace占位符(即'
%sy
stemRoot
%sy
stem32'被replace为当前path'C:Windowssy
stem32' )。 更新PATHvariables,我不想用pathreplace占位符。@H_
404_0@SetEnvironmen
tvariable后,不能再从命令框中打开程序(即命令框中的calc.exe不起作用)。 我使用下面的
代码:@H_
404_0@String ol
dpath = Environment.GetEnvironmen
tvariable("PATH",Environmen
tvariableTarget.Machine); Environment.SetEnvironmen
tvariable("PATH",ol
dpath + ";%MYDIR%",Environmen
tvariableTarget.Machine);@H_
404_0@在Windows中编辑和更改PATHvariables后,所有工作都会重新开始。 (我需要更改,否则不会被覆盖)@H_
404_0@2 AverageTimer32
性能计数器@H_
404_0@问题与Windows服务以编程方式重新启动自己@H_
404_0@在Windows中比在Linux中慢的端口监听?@H_
404_0@如何
获取当前
用户在Windowslogin会话的唯一ID –@H_
404_0@如何测量
文件(硬盘)I / O的特性?@H_
404_0@如何防止或检测“%APPNAME%停止工作”对话框?@H_
404_0@使用win32 API
函数启用/禁用任务pipe理器,而不是通过Windowsregistry@H_
404_0@技术防止多个login到同一台计算机@H_
404_0@“这个
文件来自另一台计算机,可能被阻止,以保护这台计算机。” – 如何以编程方式在C#.net中
删除此
属性?@H_
404[email protected]开源和运行平台select@H_
404_0@您可以使用
注册表来读取和更新:@H_
404_0@string keyName = @"SY
stemCurrentControlSetControlSession ManagerEnvironment"; //get non-expanded PATH environment variable string ol
dpath = (string)Registry.LocalMachine.CreateSubKey(keyName).GetValue("Path","",RegistryValueOptions.DoNotExpandEnvironmentNames); //set the path as an an expandable string Registry.LocalMachine.CreateSubKey(keyName).SetValue("Path",RegistryValueKind.ExpandString);@H_
404_0@您可以使用WMI来检索原始值(不确定有关更新它们):@H_
404_0@ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_Environment WHERE Name = 'PATH'"); foreach (ManagementBa
SEObject managementBa
SEObject in searcher.Get()) Console.WriteLine(managementBa
SEObject["VariableValue"]);@H_
404_0@检查MSDN上的WMI参考@H_
404_0@你可以尝试这种混合。 它从
注册表中
获取路径变量,并将“NewPathEntry”
添加到路径(如果尚未存在的话)。@H_
404_0@static void Main(string[] args) { string NewPathEntry = @"%temp%data"; string NewPath = ""; bool MustUpdate = true; string RegKeyName = @"SY
stemCurrentControlSetControlSession ManagerEnvironment"; string path = (string)Microsoft.Win32.Registry.LocalMachine.OpenSubKey(RegKeyName).GetValue ("Path",Microsoft.Win32.RegistryValueOptions.DoNotExpandEnvironmentNames); string[] paths = path.Split(new char[] { ';' },StringSplitOptions.RemoveEmptyEntries); foreach (string subPath in paths) { NewPath += subPath + ";"; if (subPath.ToLower() == NewPathEntry.ToLower()) { MustUpdate = false; } } if (MustUpdate == true) { Environment.SetEnvironmen
tvariable("Path",NewPath + NewPathEntry,Environmen
tvariableTarget.Machine); } }@H_
404_0@你可以通过
注册表…@H_
404_0@string keyName = @"HKEY_LOCAL_MACHI
nesY
stemCurrentControlSetControlSession ManagerEnvironment"; //get raw PATH environment variable string path = (string)Registry.GetValue(keyName,"Path",""); //... Make some changes //update raw PATH environment variable Registry.SetValue(keyName,path);@H_
404_0@在应用程序上工作时,我们必须有
一个选项来使用来自
用户定义
文件夹的Oracle instantclient。 为了使用instantclient,我们必须
修改环境路径变量并在
调用任何与Oracle相关的
功能之前
添加这个
文件夹。 这里是我们使用的
方法:@H_
404_0@/// <summary> /// Adds an environment path segments (the PATH varialbe). /// </summary> /// <p
aram name="pathSegment">The path segment.</p
aram> public static void Ad
dpathSegments(string pathSegment) { LogHelper.Log(LogType.Dbg,"EnvironmentHelper.Ad
dpathSegments","Adding path segment: {0}",pathSegment); string allPaths = Environment.GetEnvironmen
tvariable("PATH",Environmen
tvariableTarget.Process); if (allPaths != null) allPaths = pathSegment + "; " + allPaths; else allPaths = pathSegment; Environment.SetEnvironmen
tvariable("PATH",allPaths,Environmen
tvariableTarget.Process); }@H_
404_0@请注意,这必须在其他任何事情之前
调用,可能作为您的主
文件中的第一行(不知道控制台应用程序)。@H_
404_0@使用Registry.GetValue将扩大占位符,所以我建议使用Registry.LocalMachine.OpenSubKey ,然后从设置为不扩展环境变量的选项设置的子键中
获取值。 一旦你操纵了你喜欢的路径,使用
注册表再次设置值。 这将防止Windows“忘记”你的问题的第二部分中提到的路径。@H_
404_0@const string pathKeyName = @"SY
stemCurrentControlSetControlSession ManagerEnvironment"; var pathKey = Registry.LocalMachine.OpenSubKey(pathKeyName); var path = (string)pathKey.GetValue("PATH",RegistryValueOptions.DoNotExpandEnvironmentNames); // Manipulate path here,storing in path Registry.SetValue(String.Concat(@"HKEY_LOCAL_MACHINE",pathKeyName),"PATH",path);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。