通過註冊表獲取系統的硬體環境變數? |
尚未結案
|
qalin
一般會員 發表:20 回覆:45 積分:13 註冊:2003-07-18 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
引言: 我想通過註冊表獲取系統的硬體環境變數,可是在win2000下用Reg.OpenKey('\SYSTEM\CurrentControlSet\Enum',false)卻無論如何打不開,不知何故?請各位大蝦不吝賜教?謝謝! (用微軟自己的REGEDIT卻可以打開) 或者有無其他方法可以獲取一樣詳細的資料?(用API好象讀不到這樣詳細的資料)qalin您好: 試試 Reg.OpenKey('\\SYSTEM\\CurrentControlSet\\Enum',false) /*生活是一種藝術,用心生活才能享受生活*/ |
qalin
一般會員 發表:20 回覆:45 積分:13 註冊:2003-07-18 發送簡訊給我 |
|
hcker
中階會員 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
|
qalin
一般會員 發表:20 回覆:45 積分:13 註冊:2003-07-18 發送簡訊給我 |
謝謝hcker的回復。
用以下代碼一試便知我說的不假。
var
R: TRegistry;
begin
R := TRegistry.Create;
R.RootKey := HKEY_LOCAL_MACHINE;
if R.OpenKey('\SYSTEM\CurrentControlSet\Enum',false) then
memo1.Lines.Add('Found [Enum]!')
else
memo1.Lines.Add('Not Found [Enum]!');
if R.OpenKey('\SYSTEM\CurrentControlSet\Hardware Profiles', False) then
memo1.Lines.Add('Found [Hardware Profiles]!')
else
memo1.Lines.Add('Not Found [Hardware Profiles]!');
end;
不僅如此,還根本無法寫入,見以下截圖:
請各位大蝦繼續賜教……
|
hcker
中階會員 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
你的 if R.OpenKey('\SYSTEM\CurrentControlSet\Enum',false) then
memo1.Lines.Add('Found [Enum]!') 是判斷是否有這個 然後 怎樣吧?
如果是判斷是否有這個鍵,不是用這個方法,這個openkey是打開一個註冊表節點,如果是false那麼不會建立一個 enum 但是如果是true 在openkey的時候就會自動建立一個enum If R. HasSubKeys 判斷是否有子鍵
If R.ValueExists 判斷是否有值
If R.KeyExists 判斷是否有這個鍵 用其中一個進行判斷吧,我想第一個應該比較適合你, 如果你想將裏面的項目都列出來,其實論壇裏已經有這樣的例子了,你可以使用 R. GetKeyNames 來操作。
不知道你想具體實現什麼樣的功能。 ----------要知道自己有多笨,到DelphiK.Top來看看----------
|
qalin
一般會員 發表:20 回覆:45 積分:13 註冊:2003-07-18 發送簡訊給我 |
1、請教一下hcker大大,在無法打開'\SYSTEM\CurrentControlSet\Enum'的情況下,你是如何讀取'\SYSTEM\CurrentControlSet\Enum'下的內容的,好象辦不到吧?
>< face="Verdana, Arial, Helvetica">引言:
你的 if R.OpenKey('\SYSTEM\CurrentControlSet\Enum',false) then
memo1.Lines.Add('Found [Enum]!') 是判斷是否有這個 然後 怎樣吧?
如果是判斷是否有這個鍵,不是用這個方法,這個openkey是打開一個註冊表節點,如果是false那麼不會建立一個 enum 但是如果是true 在openkey的時候就會自動建立一個enum If R. HasSubKeys 判斷是否有子鍵
If R.ValueExists 判斷是否有值
If R.KeyExists 判斷是否有這個鍵 用其中一個進行判斷吧,我想第一個應該比較適合你, 如果你想將裏面的項目都列出來,其實論壇裏已經有這樣的例子了,你可以使用 R. GetKeyNames 來操作。
不知道你想具體實現什麼樣的功能。
|
qalin
一般會員 發表:20 回覆:45 積分:13 註冊:2003-07-18 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Security problem only....
var R: TRegistry; begin R := TRegistry.Create; R.RootKey := HKEY_LOCAL_MACHINE; R.Access := KEY_READ; if R.OpenKey('\SYSTEM\CurrentControlSet\Enum',false) then memo1.Lines.Add('Found [Enum]!') else memo1.Lines.Add('Not Found [Enum]!'); if R.OpenKey('\SYSTEM\CurrentControlSet\Hardware Profiles', False) then memo1.Lines.Add('Found [Hardware Profiles]!') else memo1.Lines.Add('Not Found [Hardware Profiles]!'); end; |
qalin
一般會員 發表:20 回覆:45 積分:13 註冊:2003-07-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |