AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [Delphi 2010] RegQueryValueEx-Problem
Thema durchsuchen
Ansicht
Themen-Optionen

[Delphi 2010] RegQueryValueEx-Problem

Offene Frage von "RWarnecke"
Ein Thema von RWarnecke · begonnen am 10. Jul 2010 · letzter Beitrag vom 11. Jul 2010
Antwort Antwort
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, 23: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
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: [Delphi 2010] RegQueryValueEx-Problem

  Alt 11. Jul 2010, 08:00
Das kann ich nicht reproduzieren, bei mir funktioniert der Code (mit KEY_READ als Zugriff) problemlos (Delphi 2010, Win 32-Bit).

// EDIT:
Vielleicht funkt da die Umleitung der Registryzweige dazwischen, wenn du ein 64-Bit Betriebssystem hast.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (11. Jul 2010 um 08:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

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

AW: [Delphi 2010] RegQueryValueEx-Problem

  Alt 11. Jul 2010, 08:58
Guten Morgen Sebastian,

danke erstmal für Deine Antwort. Ja, ich habe es gestern Abend unter einem 64Bit Betriebssystem ausprobiert. Jetzt habe ich es nochmal unter Windows XP 32 Bit ausprobiert und es funktioniert. Dann liegt es wohl doch an der 64Bit-Erkennung.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Mschmidt

Registriert seit: 4. Jul 2010
Ort: Berlin
62 Beiträge
 
Delphi XE2 Professional
 
#4

AW: [Delphi 2010] RegQueryValueEx-Problem

  Alt 11. Jul 2010, 12:03
Ich vermute eher kein Unicode Problem, sondern ein Rechte-problem. HKLM darf halt nicht jeder
mschmidt
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

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

AW: [Delphi 2010] RegQueryValueEx-Problem

  Alt 11. Jul 2010, 12:09
Nee, es ist kein Rechte-Problem. Ich habe es rausgefunden. Es war doch ein Unicode-Problem. Ich hatte ein Record falsch deklariert. Statt Ansi hatte ich Unicode genommen. Nachdem ich es geändert hatte, funktionierte es wieder so wie vorher. Dadurch, das ich das Record als Unicode erstellt hatte, wurde die Variable FAccess nicht richtig gesetzt. Dadurch kam es zu dem Problem unter einem 64Bit Betriebssystem.

Danke nochmal an alle beteiligten.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz