Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

[Delphi 2010] RegQueryValueEx-Problem

  Alt 10. Jul 2010, 22:46
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 ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat