DELPHI如何判断注册表键值是否等于某个值?

比如说 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DRM下的二进制值 DataPath

如何读取这个值,然后将其转换成字符串输出?
howlshadow大哥你这个函数只能读字符串类型的键值啊,二进制的你会么?

procedure TForm1.Button1Click(Sender: TObject);
var
reg:tregistry;
buffer:array[0..100] of byte;
i,k:integer;
s:string;
begin
reg:=tregistry.create;
try
reg.rootkey:=HKEY_LOCAL_MACHINE;
reg.openkey('\SOFTWARE\Microsoft\DRM', False);
k := reg.ReadBinaryData('DataPath',buffer,100);
s := '';
for i:=0 to k-1 do begin
s := s + ' '+ IntToHex(buffer[i],2);
if (i+1) mod 16 =0 then begin
memo1.Lines.Add(s);
s := '';
end;
end;
if s<>'' then
memo1.Lines.Add(s);
finally
reg.free;
end;
end;
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-08
// 获取注册表键值
function TCommon.FGetRegStr(PRootKey: HKEY; PKey, PKeyName: String;
Const DefaultValue: String): String;
var
Reg: TRegistry;
begin
Result := DefaultValue;
Reg := TRegistry.Create ;
Reg.RootKey := PRootKey;
try
Reg.OpenKeyReadOnly(PKey);
if Reg.ValueExists(PKeyName) then
begin
if Reg.GetDataType(PkeyName) = rdString then
Result := Reg.ReadString(PKeyName);
end;
finally
Reg.CloseKey;
Reg.Free ;
end;
end;

调用时这样写

FGetRegStr(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\DRM', 'DataPath
', '')
相似回答