Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ist die ProductID einzigartig? (https://www.delphipraxis.net/53597-ist-die-productid-einzigartig.html)

Luckie 3. Jul 2007 10:50

Re: Ist die ProductID einzigartig?
 
Wie leist du den Code aus? Du solltest den Schlüssel nur zum Lesen öffnen.

BlackOut 3. Jul 2007 11:18

Re: Ist die ProductID einzigartig?
 
Code:
function GetWindowsID: string;
var
  Registry: TRegistry;
begin
  Registry := TRegistry.Create(KEY_WRITE);
  try
    Registry.Lazywrite := false;
    Registry.RootKey := HKEY_LOCAL_MACHINE;
    Registry.OpenKeyReadOnly('\Software\Microsoft\Windows\CurrentVersion');
    Result := Registry.ReadString('ProductID');
    Registry.CloseKey;
  finally
    Registry.Free;
  end;
end;
Auf diese Weise lese Ich die ProductID aus, codiere sie anschliessend und schicke sie an meine Datenbank um einen Activation Key zu generieren (jepp, jenes Thema, das "alle 3 Wochen wieder auftaucht" :roll: aber darum geht es hier nur bedingt).

Ich ueberlege gerade, lautet der Registry Eintrag fuer WinNT nicht
Code:
'\Software\Microsoft\Windows NT\CurrentVersion\ProductID'
waere es insofern nicht denkbar, dass dies auch auf Vista Systemen abweichend ist?

Ueber kurz oder lang muss man sich als Programmierer wohl doch ein halbes Dutzend Betriebssysteme zum Testen aufstellen...

Stefan92 3. Jul 2007 11:29

Re: Ist die ProductID einzigartig?
 
Zitat:

Die Product-ID ist ja nur pseudo-einzigartig. Man kann nur dank der schieren Menge quasi ausschließen, daß es mehrere solcher IDs mehrfach gibt. Aber eben nur quasi - es gibt ja schließlich auch Lottogewinner (auch wenn wir hier von einer noch viel geringeren Wahrscheinlichkeit reden).
Ich glaube in dem Punkt hast du unrecht. Die Product-ID muss einzigartig sein, da die Product-Keys nicht zufällig gewählt werden, sondern nach einem bestimmten Schema vergeben werden.

Gruß

Stefan

DeddyH 3. Jul 2007 11:49

Re: Ist die ProductID einzigartig?
 
Zitat:

Zitat von BlackOut
Delphi-Quellcode:
Registry := TRegistry.Create(KEY_WRITE);

Wieso denn KEY_WRITE, wenn Du nur lesen willst? Übrigens lautet der Schlüssel AFAIK auch unter NT/W2K/XP HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion (unter XP habe ich gerade nachgesehen).

BlackOut 3. Jul 2007 12:06

Re: Ist die ProductID einzigartig?
 
Stimmt.
Code:
Registry := TRegistry.Create(KEY_READ);
waere ausreichend, und
Code:
Registry.Lazywrite
kann dann auch weg.

Fuer Win2K/XP gilt der Schluessel auf jeden Fall - in Zusammenhang mit WinNT bin Ich mal auf Anmerkungen gestossen, die vermuten lassen koennten, dass dies erforderlich waere:
Code:
if CheckForWinNT = true then
  Registry.OpenKeyReadOnly('\Software\Microsoft\Windows NT\CurrentVersion');
Nachpruefen kann Ich es aber nicht.

Und Vista - entweder ist der Schluessel anders, oder es ist eine andere Ausnahmeerscheinung eingetreten. Oder es lag an dem Schreibzugriff. Da tappe Ich noch etwas im Dunkeln.

DeddyH 3. Jul 2007 12:14

Re: Ist die ProductID einzigartig?
 
Spontan würde ich auf den Schreibzugriff tippen.

blackdrake 14. Jul 2007 23:44

Re: Ist die ProductID einzigartig?
 
Hallo.

Soweit ich weiß ist die ProductID direkt von dem Serialkey von Windows abgeleitet und nicht vom System abhängig, was heißt: Wer den selben Serialkey für mehrere Windows-Systeme auf verschiedenen Rechnern verwendet (was in den meisten Fällen nicht Rechtsmäßig ist), hat auch die selbe ProductID. Folglich ist die ProductID nicht einzigartig, weil mehrere Rechner die selbe ID haben können.

Gruß
blackdrake

Zacherl 15. Jul 2007 00:39

Re: Ist die ProductID einzigartig?
 
Wie Olli schon sagte ist die ProductID "pseudo-einzigartig", um seinen Wortlaut zu verwenden. Denke so kann man es stehen lassen :P


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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz