跳到主要內容

Windows系統中環境變數的放置地方

在windows下,除了registry外,環境變數是另一個可以用來控制某些程式行為的地方。甚至其PATH變數可以決定程式能不能被執行。一般熟悉DOS指令的人,都會使用set這個命令去設定或是查看環境變數。

不過,不曉得為何Microsoft似乎不太喜歡讓人使用這個功能,所以關於環境變數的功能都非常難用。在windows下,環境變數其實也是放在registry的。所以,如果你想自己寫個小工具去修改環境變數,就需要知道環境變數在registry的位置。



基本上,環境變數在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 則留言

這個網誌中的熱門文章

解決Python script無法在cp65001的console下執行的問題

你是否有這樣的經驗,明明沒問題的script,拿到某的電腦一直看到下面的訊息而無法執行。
LookupError: unknown encoding: cp65001 cp65001是什麼鬼!?其實,它就是UTF8阿!只是,Microsoft喜歡叫他cp65001(code page 65001號)。附帶一提,我們常用的Big5是cp950。想要知道你目前所使用的code page可以在Windows的console視窗執行

Portable Python

我常常需要把Python寫的script帶到其他電腦使用,因此,一個免安裝,可攜帶的Python就顯得十分重要。最近看過了幾個可攜式Python的方案,下面這個PortablePython是我覺得最合我意的方案。因為它提供了大部分會用到的Python module及工具,甚至連wxPython及PyGame也有。同時也有好用的Python編輯器PyScripter。所有開發Python所需的開發工具都一應俱全了!把它放到隨身碟中,就不用到處幫人安裝Python了。

PortablePython: http://www.portablepython.com/

Windows Installer死掉了嗎?

最近我的電腦發生了奇怪的事情。只要是與Windows Installer有關的東西,都無法動作了。也就是說,我無法安裝包裝成msi的軟體。也無法加以移除。搞了半天,始終沒有頭緒。一度動念頭想要將整台電腦重灌。

不過,經過一路追蹤問題,我發現是Windows Installer的服務無法啟動,而造成整個問題。透過系統管理工具中的『服務』,去啟動Windows Installer服務時,每次都看到代碼1067的錯誤訊息。無論怎麼重灌Windows Installer也無法解決。

今天突然靈光一閃,我開始把正在執行的程式一個接著一個砍掉,一邊砍一邊去啟動Windows Installer服務。試了好久,都快要放棄的時候。忽然我的Windows Installer就run起來了。趕快看一下是砍了哪個程式變成這樣的。終於被我找到罪魁禍首了!!就是下面這個程式造成的。只要把這個服務停掉,我的Windows Installer就復活了!!!


感謝匿名網友提供另外一個小技巧:
『只要在windows installer服務的內容裡,在登入那頁勾"允許服務與桌面互動" 就輕鬆解決囉!』

BTW, 我沒實際試過,有遇到這個問題的人,請試試看!然後好心的跟我回報一下!

有些網友找不到service的控制畫面。下面簡單說明一下:

service的控制是在
『控制台->系統管理工具->服務』

英文的話是
『Control Panel->Administrative Tools->Services』

再不然,用command line下services.msc /s也可以叫出來。

再不行...就試試吧
> net stop LVPrcSrv
> %WINDIR%\system32\sc.exe config LVPrcSrv start= disabled

PS: 如果需要重新安裝MSI installer,可以到Microsoft的下載中心