Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
|
Re: Registry: Typ ermitteln
19. Mai 2004, 17:21
wäre dieser code hier denn in ordnung?
Delphi-Quellcode:
function ReadRegFromAPI(const Key: HKEY; Path, lpValueName: string): string;
var
KeyH : HKEY;
lpType,
lpcbData,
lpData : DWORD;
bRes : boolean;
begin
Result := '';
if RegOpenKeyEx(Key, PAnsiChar(Path), 0, KEY_READ, KeyH) = ERROR_SUCCESS then
try
lpType := REG_NONE;
lpcbData := 0;
bRes := false;
if RegQueryValueEx(KeyH, PAnsiChar(lpValueName), nil, @lpType, nil, @lpcbData) = ERROR_SUCCESS then
case lpType of
REG_SZ, REG_EXPAND_SZ:
begin
SetLength(Result, lpcbData + 1);
bRes := RegQueryValueEx(KeyH, PAnsiChar(lpValueName), nil, @lpType, @Result[1], @lpcbData) = ERROR_SUCCESS;
end;
REG_DWORD:
begin
bRes := RegQueryValueEx(KeyH, PAnsiChar(lpValueName), nil, @lpType, @lpData, @lpcbData) = ERROR_SUCCESS;
Result := string(lpData);
end;
end;
finally
if not bRes then
MessageBox(0, 'Fehler aufgetreten', '!', 0);
RegCloseKey(Key);
end;
end;
und wieso muss ich bei einem string auf das erste byte zeigen? also [1] ? bei einem integer sind es doch auch 4 bytes, wieso muss ich da nicht [1] angeben?
Mario MSN: cyanide@ccode.de
|
|
Zitat
|