AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows 7 Product Key

Ein Thema von DArc · begonnen am 30. Dez 2011 · letzter Beitrag vom 5. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2      
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#1

Windows 7 Product Key

  Alt 30. Dez 2011, 20:01
Hallo Delphianer,

meine Frage richtet sich auf das im Threadnamen stehende Thema.
Ich versuchte erfolglos die Binary Werte des Registry Eintrags 'DigitalProductId' bzw. 'DigitalProductId64'
durch folgenden Code auszulesen:

Delphi-Quellcode:
function GetWindowsRegistryValuesA: string;
var
  Reg: TRegistry;
  i: Integer;
begin
  Reg := TRegistry.Create(KEY_READ);
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if (Reg.OpenKeyReadOnly('SOFTWARE\Microsoft\Windows NT\CurrentVersion\')) then
    begin
      try

        { Bemerkung: Ich überprüfe mit ValueExists die Existenz der Werte.
                    Mit KeyExists hab ichs auch versucht.
                    Es klappt eigentlich bei jedem Wert, nur nicht bei
                    den zwei besagten.
        }


        { Beispiel Code einer Erfolgreichen Operation: }

        // Check and Read BuildGUID
        if Reg.ValueExists('BuildGUID') then
          Result := Result + #13#10 + 'BuildGUID: ' + Reg.ReadString('BuildGUID');

        { Die nächsten 2 Operationen geben nichts zurück, sprich Result
          wird nicht erweitert.
        }


        // Check and Read DigitalProductId
        if Reg.ValueExists('DigitalProductId') then
          Result := Result + 'existiert';

        // Check and Read DigitalProductId4
        if Reg.ValueExists('DigitalProductId64') then
          Result := Result + 'existiert';

       // usw.

      finally
        Reg.CloseKey;
      end;
    end;
  finally
    Reg.Free;
  end;
end;
Hoffe ihr könnt mir helfen,
Mfg DArc
Ich würde gerne die Welt verändern, doch Gott hat
vergessen mir die Quellcodes zu geben ... !
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Windows 7 Product Key

  Alt 30. Dez 2011, 20:33
Also bei mir existieren die auch nicht. Siehe hier:

win7regkey.png

Nur im 64-Bit Zweig gibt es die bei mir, aber auf den greifst du ja nicht zu.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Windows 7 Product Key

  Alt 30. Dez 2011, 20:43
Schade, also ich kannte ja bisher die Methode per Registry den Key auszulesen ...

Gibt es da ne andere Möglichkeit?

Wäre über ein Tipp sehr erfreut.

Mfg DArc
Ich würde gerne die Welt verändern, doch Gott hat
vergessen mir die Quellcodes zu geben ... !
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Windows 7 Product Key

  Alt 30. Dez 2011, 20:49
Du musst als Zugriffsflag KEY_WOW64_64KEY, also $0100, übergeben, damit du aus dem 64-Bit Zweig liest. Das hätte Google dir aber auch gesagt.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Windows 7 Product Key

  Alt 30. Dez 2011, 20:57
das hab ich auch schon mal versucht gehabt (infos hatte ich von http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx)

ich habe also
  Reg := TRegistry.Create(KEY_READ or $0100); verwendet, jedoch kein unterschied
Ich würde gerne die Welt verändern, doch Gott hat
vergessen mir die Quellcodes zu geben ... !
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Windows 7 Product Key

  Alt 30. Dez 2011, 21:08
Du benutzt OpenKeyReadOnly. Damit setzt du die Zugriffsflags zurück. Damit geht das nicht.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Windows 7 Product Key

  Alt 30. Dez 2011, 23:04
Tut mir leid, bin grad etwas neben mir, vorallem weil es nicht so funktionieren mag wie ich es wünsche

Delphi-Quellcode:
function GetWindowsRegistryValuesA: string;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create(KEY_READ or $0100);
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if (Reg.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\', false)) then
    begin
      try
      if Reg.KeyExists('DigitalProductId') then
                Result := Result + 'existiert';

        if Reg.ValueExists('DigitalProductId64') then
                Result := Result + 'existiert';
      finally
        Reg.CloseKey;
      end;
    end;
  finally
    Reg.Free;
  end;
end;
Kann jemand versuchen das mal bei sich auszutesten?
Oder hat jemand schon den Fehler gefunden?

Mfg DArc
Ich würde gerne die Welt verändern, doch Gott hat
vergessen mir die Quellcodes zu geben ... !
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Windows 7 Product Key

  Alt 30. Dez 2011, 23:07
Funktioniert problemlos. Nur dass du beim ersten if aus Versehen KeyExists statt ValueExists drin hast und beim zweiten DigitalProductId64 statt DigitalProductId4...

Wenn ich beides korrigiere, klappt es auch.

// EDIT:
Übrigens geht in aktuellen Delphiversionen auch OpenKeyReadOnly, das war nur in deinem alten Delphi 7 noch ein bekannter Bug.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (30. Dez 2011 um 23:12 Uhr)
  Mit Zitat antworten Zitat
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Windows 7 Product Key

  Alt 30. Dez 2011, 23:28
och ich dummerchen, solche fehler sind echt nervig

danke, ihr seid die besten!

Mfg DArc

€dit:
Zitat:
Übrigens geht in aktuellen Delphiversionen auch OpenKeyReadOnly, das war nur in deinem alten Delphi 7 noch ein bekannter Bug.
Gut zu wissen, danke!

P.S.: Thread kann geclosed werden, da mein Problem nicht mehr unter uns weilt.
Ich würde gerne die Welt verändern, doch Gott hat
vergessen mir die Quellcodes zu geben ... !
  Mit Zitat antworten Zitat
netpilots

Registriert seit: 13. Nov 2004
Ort: Zürich
33 Beiträge
 
Delphi 6 Enterprise
 
#10

AW: Windows 7 Product Key

  Alt 5. Apr 2013, 01:11
Zitat:
Übrigens geht in aktuellen Delphiversionen auch OpenKeyReadOnly, das war nur in deinem alten Delphi 7 noch ein bekannter Bug.
Ich wage noch kurz eine Frage.

Gibt es Methoden den 'Bug' in Delphi Versionen >= D7 wegzukriegen um doch noch OpenKeyReadOnly zu verwenden.
KeyRead in HK_LocalMachine benötigt Administratorenrechte wenn man nur OpenKey verwendet. Mit OpenKeyReadOnly würde es ohne Admin Rechte funktionieren.

MfG - Netpilots
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:18 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