在windows下,除了registry外,環境變數是另一個可以用來控制某些程式行為的地方。甚至其PATH變數可以決定程式能不能被執行。一般熟悉DOS指令的人,都會使用set這個命令去設定或是查看環境變數。
不過,不曉得為何Microsoft似乎不太喜歡讓人使用這個功能,所以關於環境變數的功能都非常難用。在windows下,環境變數其實也是放在registry的。所以,如果你想自己寫個小工具去修改環境變數,就需要知道環境變數在registry的位置。
[][1]
基本上,環境變數在registry中存在於兩個地方,分別是
HKCU\Environment
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
所以,你的程式可以透過修改registry的方式來修改環境變數。除了上面這兩個地方外,還有另外一個是傳統DOS的作法,也就是
- autoexec.bat
- config.sys
基本上,並不建議你將環境變數放在這個地方。不過,如果你是要找出某個環境變數的來源,除了registry外,也別忘記來這兩個檔案中找一下。有些傳統的軟體還是會用者兩個檔案的。
Microsoft有提供一個叫做setx.exe的程式,可以用來設定在上述Registry的環境變數。這個程式並不包含在windows中,你需要去Microsoft的網站找。
Reference
[1]: