Hallo zusammen,
so langsam hasse ich diesen Kram mit
Unicode. Ich stehe vor folgendem Problem :
Delphi-Quellcode:
var
FAccess : Cardinal;
Key : HKEY;
dwType : DWORD;
dwLen : DWORD;
{...}
if RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar('SOFTWARE\Microsoft\Windows NT\CurrentVersion'), 0, FAccess, Key) = 0 then
begin
try
dwType := REG_NONE; // Typ muss ermittelt werden
dwLen := 0; // Puffergröße auf Null
if RegQueryValueEx(key, 'DigitalProductId', nil, @dwType, nil, @dwLen) = ERROR_SUCCESS then
if (dwType = REG_BINARY) and (dwLen > 0) then
begin
SetLength(HexBuf,dwLen);
RegQueryValueEx(key, 'DigitalProductId', nil, @dwType, @HexBuf[0], @dwLen);
end;
Result.ProduktKey := DecodeProductKey(HexBuf);
finally
RegCloseKey(key);
end;
end;
Dieser Sourcecode hat unter Delphi 2006 noch wunderbar funktioniert. Nur leider schmeißt mir RegQueryValueEx in der ersten IF-Abfrage unter Delphi 2010 den Fehlercode 2 (File not found) zurück. Warum passiert das ? Ich kann mir da leider keinen Reim drauf machen ausser das es mal wieder mit
Unicode zu tun hat. Vermute ich das richtig ? Wenn ja, was muss ich ändern, damit es funktioniert ?