請問Win2K環境變數的設定??? |
答題得分者是:ericosur
|
David
一般會員 發表:13 回覆:26 積分:7 註冊:2002-04-14 發送簡訊給我 |
請問各位前輩:
我想用程式設定Win2K下的環境變數,之前有搜尋論壇相關文章,有前輩提供如下解答:
environment variable主要有四個API可read, write
GetEnvironmentStrings: 取得environment block之指標
FreeEnvironmentStrings: free block
GetEnvironmentVariable: 由environment block中取得指定之variable
SetEnvironmentVariable:設定某一環境變數 小弟測試後發現:這些API是提供CURRENT PROCESS的設定讀取(我是從delphi6 win32 development's references查閱),能否進一步請問,如何設定永久環境變數?也就是設定變數後,在win95/98就會改變autoexec.bat,在nt/2k/xp就放入環境變數中,我是想做個安裝檔安裝後就能設定環境變數,系統便能使用,如果是暫時的便恐怕不符需求... 目前測試成果:
在win95/98我可以進行修改autoexec.bat然後重新開機===OK
在winnt/2k/xp我原本做法是增加register內的機碼,後來發現雖然從 系統>進階>環境變數 中有出現,但似乎沒真正設定好導致程式並未抓到變數內容,需要我logout再login後才能辨識,如果一般我們手動新增/修改馬上系統就能辨認,不需logout再login,不知我還少了哪個initial 指令.... 我在win32 help中有查到一個指令
BOOL SetEnvVariable(LPSTR szName, LPSTR szValue, CMO cmo) 依說明看,似乎能95-2k通吃適用,可是在delphi中無法辨識,也找不到該use哪個檔,不知有前輩知道這指令嗎...
還是有其他方法作得到...
|
ericosur
一般會員 發表:0 回覆:15 積分:8 註冊:2002-08-08 發送簡訊給我 |
|
David
一般會員 發表:13 回覆:26 積分:7 註冊:2002-04-14 發送簡訊給我 |
引言: 這個win32 API也是只能改變目前行程的環境變數值,行程結束後 這些更動就消失了 根據msdn 利用程式更動系統環境變的方法是寫入value到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment 這個registry key, 然後廣播 WM_SETTINGCHANGE 這個message, 也不用重開機了首先謝謝ericosur前輩指點。 由於對API不是甚熟,再加上臨時一些事情,所以到最近才有時間測試ericosur前輩指點的方法,在Win2000上測試後,果然成功了。再次感謝ericosur的幫忙。 Best regards. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |