請問環境變數(environment variable)?如何應用 |
尚未結案
|
eric wei
一般會員 發表:5 回覆:10 積分:3 註冊:2002-07-22 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
environment variable主要有四個API可read, write
GetEnvironmentStrings: 取得environment block之指標
FreeEnvironmentStrings: free block
GetEnvironmentVariable: 由environment block中取得指定之variable
SetEnvironmentVariable:設定某一環境變數
以下範例展示如何在TMemo上顯示所有環境變數
[note]每一均以null byte間隔, 最後整個block之結束也是一個null byte
procedure TForm1.Button1Click(Sender: TObject); var s:string; p,env:pchar; begin Memo1.lines.clear; env:=GetEnvironmentStrings; p:=env; while (p^<>#0) do begin s:=''; while (p^<>#0) do begin s:=s p^; inc(p); end; memo1.Lines.add(s); inc(p); end; FreeEnvironmentStrings(env); end;發表人 - ccchen 於 2002/08/18 09:34:02 |
eric wei
一般會員 發表:5 回覆:10 積分:3 註冊:2002-07-22 發送簡訊給我 |
ccchen版主: environment variable主要有四個API可read, write
GetEnvironmentStrings: 取得environment block之指標
FreeEnvironmentStrings: free block
GetEnvironmentVariable: 由environment block中取得指定之variable
SetEnvironmentVariable:設定某一環境變數
以下範例展示如何在TMemo上顯示所有環境變數
[note]每一均以null byte間隔, 最後整個block之結束也是一個null byte procedure TForm1.Button1Click(Sender: TObject);
var s:string;
p,env:pchar;
begin
Memo1.lines.clear;
env:=GetEnvironmentStrings;
p:=env;
while (p^<>#0) do begin //紅色的部份是什麼意思;
s:=''; //是指p的指標不等於空白嗎?
while (p^<>#0) do begin
s:=s p^;
inc(p);
end;
memo1.Lines.add(s);
inc(p);
end;
FreeEnvironmentStrings(env);
end; 我在Form1拉了一個Tmemo1和TButton1,並執行卻出現Unable to Create Process是我那做錯了,可以請您再指導小弟。
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
David
一般會員 發表:13 回覆:26 積分:7 註冊:2002-04-14 發送簡訊給我 |
引言: environment variable主要有四個API可read, write GetEnvironmentStrings: 取得environment block之指標 FreeEnvironmentStrings: free block GetEnvironmentVariable: 由environment block中取得指定之variable SetEnvironmentVariable:設定某一環境變數 以下範例展示如何在TMemo上顯示所有環境變數 [note]每一均以null byte間隔, 最後整個block之結束也是一個null byte版主您好: 有關您提供的這幾個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後才能辨識,不知我還少了哪個initial 指令.... 我在win32 help中有查到一個指令 BOOL SetEnvVariable(LPSTR szName, LPSTR szValue, CMO cmo) 依說明看,似乎能95-2k通吃適用,可是在delphi中無法辨識,也找不到該use哪個檔,不知版主知道這指令嗎... 還是有其他方法作得到...procedure TForm1.Button1Click(Sender: TObject); var s:string; p,env:pchar; begin Memo1.lines.clear; env:=GetEnvironmentStrings; p:=env; while (p^<>#0) do begin s:=''; while (p^<>#0) do begin s:=s p^; inc(p); end; memo1.Lines.add(s); inc(p); end; FreeEnvironmentStrings(env); end;發表人 - ccchen 於 2002/08/18 09:34:02 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |