直接用RegQueryValueEx(Windows API)来读。 LONG RegQueryValueEx( HKEY hKey, // handle to key LPCTSTR lpValueName, // value name LPDWORD lpReserved, // reserved LPDWORD lpType, // type buffer LPBYTE lpData, // data buffer LPDWORD lpcbData // size of data buffer ); 详细资料可以在 msdn.microsoft.com 上查到。
uses Registry;procedure TForm1.Button1Click(Sender: TObject); var fReg: TRegistry; fBuffer:array[0..1024] of char; aBuffer:array[0..1024] of char; begin fReg := TRegistry.Create; StrLCopy(fBuffer,pchar('大富翁的小伙计!'),Sizeof(fBuffer)); try fReg.RootKey := HKEY_CURRENT_USER; if fReg.OpenKey('\Software\BinaryData', True) then begin fReg.WriteBinaryData('MyApp',fBuffer,Sizeof(fBuffer)); fReg.ReadBinaryData('MyApp',aBuffer,Sizeof(aBuffer)); ShowMessage(String(aBuffer)); end; finally fReg.CloseKey; fReg.Free; end; end;
LONG RegQueryValueEx(
HKEY hKey, // handle to key
LPCTSTR lpValueName, // value name
LPDWORD lpReserved, // reserved
LPDWORD lpType, // type buffer
LPBYTE lpData, // data buffer
LPDWORD lpcbData // size of data buffer
);
详细资料可以在 msdn.microsoft.com 上查到。
var
fReg: TRegistry;
fBuffer:array[0..1024] of char;
aBuffer:array[0..1024] of char;
begin
fReg := TRegistry.Create;
StrLCopy(fBuffer,pchar('大富翁的小伙计!'),Sizeof(fBuffer));
try
fReg.RootKey := HKEY_CURRENT_USER;
if fReg.OpenKey('\Software\BinaryData', True) then
begin
fReg.WriteBinaryData('MyApp',fBuffer,Sizeof(fBuffer));
fReg.ReadBinaryData('MyApp',aBuffer,Sizeof(aBuffer));
ShowMessage(String(aBuffer));
end;
finally
fReg.CloseKey;
fReg.Free;
end;
end;
感谢楼上的哥哥!