線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1617
推到 Plurk!
推到 Facebook!

請問Win2K環境變數的設定???

答題得分者是:ericosur
David
一般會員


發表:13
回覆:26
積分:7
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-09-19 10:47:50 IP:61.221.xxx.xxx 未訂閱
請問各位前輩: 我想用程式設定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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-19 12:33:47 IP:61.13.xxx.xxx 未訂閱
這個win32 API也是只能改變目前行程的環境變數值,行程結束後 這些更動就消失了 根據msdn 利用程式更動系統環境變的方法是寫入value到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment 這個registry key, 然後廣播 WM_SETTINGCHANGE 這個message, 也不用重開機了
David
一般會員


發表:13
回覆:26
積分:7
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-21 11:43:09 IP:61.221.xxx.xxx 未訂閱
引言: 這個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.
系統時間:2024-03-29 7:49:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!