2010-09-14 82 views
3

应用:C#,.NET4,Windows 7的确定当前的环境变量

当一个应用程序启动时,它获取当前环境变量的副本,他们一呆就是应用程序的生命不断。我想知道如何获得当前的实际环境变量,从而让我对变化做出反应。

我需要去注册表吗?我想到了产生一个cmd.exe并抛出set的输出,但我更喜欢一些不太好用的东西。

感谢

+0

我想产卵CMD是行不通的:“在默认情况下,子进程继承父进程的环境变量。” – 2010-09-14 15:45:19

+0

谢谢,我有点这么想,马蒂尼奥。这是我没有尝试过这个实验的重要原因。 – Thomas 2010-09-16 16:09:28

回答

1

以下过载可能会给你想要的东西:

String Environment.GetEnvironmentVariable(String, EnvironmentVariableTarget) 

尝试通过EnvironmentVariableTarget.UserEnvironmentVariableTarget.Machine

要得到所有的变量,调用

IDictionary Environment.GetEnvironmentVariables(EnvironmentVariableTarget) 
+0

我已经验证了这对用户变量有效,但没有测试机器,但是来自我期望的文档。不幸的是,我还验证了我所寻找的环境var(CLIENTNAME)只是一个Process变量。非常简单的方法来查看谁是远程访问win7的。 – Thomas 2010-09-16 17:40:14

+1

如果问题是“如何找出谁是远程访问Windows 7?”,那么我会建议看看WMI http://msdn.microsoft.com/en-us/library/aa384642(v=VS。 85)的.aspx。 – 2010-09-16 19:28:10