Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Windows Produkt Key ermitteln (https://www.delphipraxis.net/119373-windows-produkt-key-ermitteln.html)

emsländer 25. Aug 2008 16:55


Windows Produkt Key ermitteln
 
Moin,

ich bin dabei für unsere Inventarisierung (nein, wir haben keine Volumelizenz, sondern immer eine beim PC-Kauf dabei gehabt) alle Keys von unseren Rechnern (inzwischen 250 Workstations und etliche Server) zu ermitteln.
Bei den XP 32Bit-Versionen reicht die Unit: Unit MSProdKey v2.2 (Swiss Delphi Center).
Diese funktioniert jedoch nicht mit Vista und auch nicht mit Server 2003 (nicht einmal 32 Bit)

Wer hat da eine Idee oder einen Vorschlag?

Für die, die jetzt wieder das Meckern anfangen: NEIN, das ist nicht illegal, weil ich nichts anderes wissen will, wie die Keys unserer eigenen Lizenzen. Irgendein Depp hat nämlich auch Keys doppelt benutzt etc.
#
#
Ich habe auch nicht vor, div. dubiose Tools aus dem Internet zu nutzen ... Da mache ich das lieber selbst, da ich von unseren Rechnern auch noch andere Infos filtern möchte.

Gruss

EL

HalloDu 25. Aug 2008 17:07

Re: Windows Produkt Key ermitteln
 
Ich bin mir nicht sicher, aber mit der WMI kannst du verdammt viel rausfinden. Vlt. auch den Key.

geofranz01 25. Aug 2008 17:09

Re: Windows Produkt Key ermitteln
 
Also bei mir (Vista) steht der ProductKey in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductID.

emsländer 25. Aug 2008 17:30

Re: Windows Produkt Key ermitteln
 
Zitat:

Zitat von geofranz01
Also bei mir (Vista) steht der ProductKey in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductID.

Das ist die Produkt-ID! Nicht der Key ...

leider - wäre zu einfach

könnte das irgendwo in der DigitalProductId verschlüsselt sein?

Gruss

EL

marabu 25. Aug 2008 17:53

Re: Windows Produkt Key ermitteln
 
Hallo EL,

probiere dein Glück: klick

Grüße vom marabu

emsländer 25. Aug 2008 18:12

Re: Windows Produkt Key ermitteln
 
Zitat:

Zitat von marabu
Hallo EL,

probiere dein Glück: klick

Grüße vom marabu

Hi Marabu,

da war ich auch schon dran.

Jetzt stellt sich die Frage, wie ich die Produkt-ID übergebe. Ich hab da wohl ein Problem mit Delphi selbst :oops:

Delphi-Quellcode:
        PID       := (Reg.ReadString('ProductID'));
        binarySize := Reg.GetDataSize('DigitalProductId');
        SetLength(HexBuf, binarySize);
Binary Size liefert mir an der Stelle -1 .... und das ist der Knackpunkt.

Dieser Registryeintrag ist da und wird auch gefunden ... aber die Länge wird mit -1 angegeben ...

Gruss

EL

RWarnecke 25. Aug 2008 18:31

Re: Windows Produkt Key ermitteln
 
Hallo EL,

mein Programm SystemInfo kann den Produktkey auslesen. Vielleicht ist es ja das, was Du suchst. Ansonsten hat marabu Dir schon mit dem Link den richtigen Weg gezeigt. Du brauchst dazu den Wert DigitalProductId aus dem Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion.

RSF 25. Aug 2008 18:43

Re: Windows Produkt Key ermitteln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich verwende folgendes:

RWarnecke 25. Aug 2008 18:48

Re: Windows Produkt Key ermitteln
 
Hallo RSF,

kleine Anmerkung am Rande, unter Windows 64Bit funktioniert Dein Sourcedode nicht. Aber ansonsten prinzipell ist der Sourcecode richtig.

marabu 25. Aug 2008 18:58

Re: Windows Produkt Key ermitteln
 
Tja, was soll ich sagen: Bei mir liefert D7 unter XP GetDataSize korrekt.

Delphi-Quellcode:
const
  KEY = 'Software\Microsoft\Windows NT\CurrentVersion';
  VALUE = 'DigitalProductId';
var
  buf: array of Byte;
begin
  with TRegistry.Create(KEY_READ) do
  try
    RootKey := HKEY_LOCAL_MACHINE;
    if OpenKey(KEY, False) then
    begin
      SetLength(buf, GetDataSize(VALUE));
      if ReadBinaryData(VALUE, buf[0], Length(buf)) = Length(buf)
        then Caption := DecodeProductKey(buf)
        else Caption := 'rats';
      CloseKey;
    end;
  finally
    Free;
  end;
end;
Bei Vista kann und mag ich nicht mitreden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr.
Seite 1 von 2  1 2      

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