PDA

View Full Version : Delphi ทำยังไงถึงจะได้ ค่า Key ใน Registry



Korn
05-01-2005, 02:56 PM
คือ ผมมีปัญหา กับ key ในRegistry ครับ
ผมติดต่อกับ Registry และนำค่า ออกมาได้แล้ว แต่ ติดที่ ว่าใน Key หนึ่งมันมีค่าได้หลายค่า
แล้วก็ใน Key 1 Key เองก็มี Key ซ้อนกันอยู่
เลยอยากถามว่าจะทำยังไงให้ได้ค่า Key และค่าที่อยู่ใน Key แต่ละตัวออกมา
เช่น ใน HKey_LOCAL_MACHINE จะมี Key ย่อย อีก เช่น SOFTWARE
ในค่า Key SOFTWARE ก็มีอีกหลาย Key ถามว่า Delphi จะเอาค่า Key ทั้งหมดใน
HKey_LOCAL_MACHINESOFTWARE ออกมาได้ยังไงครับ

neoclassic
06-01-2005, 12:47 PM
คล้ายๆแบบนี้ป่าว

program Project1;

{$APPTYPE CONSOLE}

uses
windows;

function str2int(x:string):integer;
var v,code:integer;
begin
val(x,v,code);
str2int:=v;
end;


function EnumKeys(kkey,kpth:string):string;
var
K: HKey;
I: Integer;
L: DWORD;
S: string;
B: string;
Vals: Array[0..255] of Char;
begin

case str2int(kkey) of
1: RegOpenKey(HKEY_CLASSES_ROOT, PChar(kpth), K);
2: RegOpenKey(HKEY_CURRENT_USER, PChar(kpth), K);
3: RegOpenKey(HKEY_LOCAL_MACHINE, PChar(kpth), K);
4: RegOpenKey(HKEY_USERS, PChar(kpth), K);
5: RegOpenKey(HKEY_CURRENT_CONFIG, PChar(kpth), K);
6: RegOpenKey(HKEY_DYN_DATA, PChar(kpth), K);
end;

SetString(S, nil, 255);
I:=0; B:='';
while RegEnumKey(K,I,PChar(S),255) <> ERROR_NO_MORE_ITEMS do begin

B:=B+''+PChar(S)+#13#10;

Inc(I);
end;
Result := string(B);
end;

begin

writeln(EnumKeys('3','software'));
readln;

end.


ถ้าอยากได้แบบ
ลึกกว่านี้อีกก็ลองคิดต่อเอง ผมเองก้อไม่ค่อยเก่งซะด้วย
:D

ardister
23-04-2008, 02:42 PM
**Hidden Content: Check the thread to see hidden data.**

bo0m
21-01-2009, 05:11 PM
ผมจะเอา Delphi ดูค่า Registry ของ WinguardPro