2010-09-14 113 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