【问题标题】:Determine current environment variables确定当前环境变量
【发布时间】:2010-09-14 15:41:43
【问题描述】:

应用程序:C#、.NET4、Windows 7

当应用启动时,它会获取当前环境变量的副本,并且它们在该应用的生命周期内保持不变。我想知道如何获取实际的当前环境变量,以便对变化做出反应。

我需要去注册表吗?我考虑过生成一个 cmd.exe 并转储 set 的输出,但我更喜欢不那么 hacky 的东西。

谢谢

【问题讨论】:

  • 我认为生成 cmd 不起作用:“默认情况下,子进程继承其父进程的环境变量。”
  • 谢谢,我是这么认为的,马蒂尼奥。这就是我没有尝试那个实验的主要原因。

标签: c# .net environment-variables


【解决方案1】:

下面的重载可能会给你你想要的:

String Environment.GetEnvironmentVariable(String, EnvironmentVariableTarget)

尝试传递EnvironmentVariableTarget.UserEnvironmentVariableTarget.Machine

要获取所有变量,请调用

IDictionary Environment.GetEnvironmentVariables(EnvironmentVariableTarget)

【讨论】:

  • 我已经验证这确实适用于用户变量,没有测试机器,但从文档中我希望它会。不幸的是,我还验证了我正在寻找的环境变量 (CLIENTNAME) 只是一个流程变量。就这么简单的方法来查看谁被远程访问了 win7。
  • 如果问题是“如何找出谁被远程访问了 Windows 7?”,那么我建议查看 WMI msdn.microsoft.com/en-us/library/aa384642(v=VS.85).aspx
猜你喜欢
  • 2013-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-27
  • 1970-01-01
  • 2012-05-16
相关资源
最近更新 更多