AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Seriennummer Informationen in Registry schreiben

Seriennummer Informationen in Registry schreiben

Ein Thema von dor557 · begonnen am 21. Aug 2010 · letzter Beitrag vom 6. Mär 2012
Antwort Antwort
Seite 1 von 5  1 23     Letzte » 
Benutzerbild von dor557
dor557

Registriert seit: 23. Okt 2004
Ort: Walldorf
193 Beiträge
 
Turbo Delphi für Win32
 
#1

Seriennummer Informationen in Registry schreiben

  Alt 21. Aug 2010, 14:49
Servus zusammen.

Mal wieder ein Windows Vista / 7 Problem.

Ich habe bisher immer unter XP die Seriennummer Informationen meiner Programme unter HKEY_LOCAL_MACHINE/SOFTWARE/....
Gespeichert.

Nun scheint das aber nicht mehr zu gehen. Selbst wenn ich als Admin starte werden die Daten nicht gespeichert. Ich bekomme nichtmal eine Fehlermeldung.

irgendwie raff ich nicht wieso.

weiss jemand rat ??

hier mal der Code der das Speichern soll :

Delphi-Quellcode:
Procedure TMainForm.Reg_Sav;
var Reg : TRegistry;
    ver : String;
begin
  Reg := TRegistry.Create;
  with Reg do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey('Software\DeveloperName\AppName\', True);
    WriteString('firma', MainConfig.Firma);
    WriteString('S/NR', MainConfig.SENR);
    CloseKey;
    Free;
  end;
end;
gruss Sascha
Sascha Nickel
Turbo Delphi 2006

Man muss die Dinge nehmen wie sie kommen, man kann aber auch dafür sorgen das die dinge so kommen wie man sie nehmen möchte.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
35.105 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Seriennummer Informationen in Registry schreiben

  Alt 21. Aug 2010, 14:58
Wie wäre es mal mit einer richtigen Fehlerbehandlung? Desweiteren wäre es recht nützlich, wenn du uns mitteilst unter welchem Windows es nicht mehr funktioniert.

Aber meine Glaskugel sagt mir, dass die Virtualisierung zuschlägt. Nähere Informationen dazu im Forum.
Michael
"Every language has an optimization operator. In Delphi that operator is: //"
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
247 Beiträge
 
Delphi XE Professional
 
#3

AW: Seriennummer Informationen in Registry schreiben

  Alt 21. Aug 2010, 15:30
Hallo,

dies funktioniert bei allen Windows-Versionen, auch wenn ESK noch nicht existiert:

Delphi-Quellcode:
try
  reg:=tregistry.Create;
  reg.RootKey:=HKey_Local_Machine;
  reg.OpenKey('Software\ESK',true);
  reg.WriteString('ID',s);
  reg.CloseKey;
except
  reg.Free;
  messagedlg(_('Nicht genügend Rechte vorhanden.')+#13+ ....
                   
end;
Ralf
  Mit Zitat antworten Zitat
JannesDKS

Registriert seit: 2. Feb 2009
Ort: Hamburg
61 Beiträge
 
#4

AW: Seriennummer Informationen in Registry schreiben

  Alt 21. Aug 2010, 15:45
Hey,

ich steh derzeit vor der gleichen Problematik:

Registry 64 Bit

Ich werd hier auch meine Lösung posten, sobald ich sie gefunden habe
LG
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Seriennummer Informationen in Registry schreiben

  Alt 21. Aug 2010, 16:33
Desweiteren wäre es recht nützlich, wenn du uns mitteilst unter welchem Windows es nicht mehr funktioniert.
Desweiteren wäre es recht nützlich, wenn Du richtig lesen würdest. Steht nämlich da.

Ich würde die ganzen Infos sowieso unter HKEY_CURRENT_USER packen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
35.105 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Seriennummer Informationen in Registry schreiben

  Alt 21. Aug 2010, 16:35
Ach Mist. Hier in der Reha verblödet man irgendwie.
Michael
"Every language has an optimization operator. In Delphi that operator is: //"
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.011 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Seriennummer Informationen in Registry schreiben

  Alt 22. Aug 2010, 10:15
Hallo,

dies funktioniert bei allen Windows-Versionen, auch wenn ESK noch nicht existiert:

Delphi-Quellcode:
try
  reg:=tregistry.Create;
  reg.RootKey:=HKey_Local_Machine;
  reg.OpenKey('Software\ESK',true);
  reg.WriteString('ID',s);
  reg.CloseKey;
except
  reg.Free;
  messagedlg(_('Nicht genügend Rechte vorhanden.')+#13+ ....
                   
end;
Erstens hat er es so wie du, und zweitens hast du es sogar falsch, da du reg nur bei einem fehler frei gibst
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.267 Beiträge
 
Delphi 6 Personal
 
#8

AW: Seriennummer Informationen in Registry schreiben

  Alt 22. Aug 2010, 11:10
Servus zusammen.
Servus !


Mal wieder ein Windows Vista / 7 Problem.
Och, so schlimm wird es nicht sein...

Ich habe bisher immer unter XP die Seriennummer Informationen meiner Programme unter HKEY_LOCAL_MACHINE/SOFTWARE/....
Gespeichert.
Da gehört es nicht hin.
Ich würde die ganzen Infos sowieso unter HKEY_CURRENT_USER packen.
Das wäre passend.

Nun scheint das aber nicht mehr zu gehen. Selbst wenn ich als Admin starte werden die Daten nicht gespeichert. Ich bekomme nichtmal eine Fehlermeldung.
Liegt an deinem Sourcecode.

hier mal der Code der das Speichern soll :

Delphi-Quellcode:
Procedure TMainForm.Reg_Sav;
var Reg : TRegistry;
    ver : String;
begin
  Reg := TRegistry.Create;
  with Reg do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey('Software\DeveloperName\AppName\', True);
    WriteString('firma', MainConfig.Firma);
    WriteString('S/NR', MainConfig.SENR);
    CloseKey;
    Free;
  end;
end;
Autsch.

Ein Versuch:
Delphi-Quellcode:
Function TMainFormUndSo.RegSaveUserLizense(Firma, Serial: string): boolean;
var
  Reg : TRegistry;
  ver : String;
begin
  Result := False;

  Reg := TRegistry.Create;
  try
    with Reg do
    begin
      RootKey := HKEY_LOCAL_USER;
      OpenKey('Software\DeveloperName\AppName\', True);
      WriteString('Firma', Firma);
      WriteString('S/NR', Serial);
      CloseKey;
      Result := True;
     end;
  finally
    Reg.Free;
  end;
end;
Noch einer:
Delphi-Quellcode:
Function TMainFormUndSo.RegSaveUserLizense(Firma, Serial: string): boolean;
var
  ver : String;
begin
  Result := False;

  with TRegistry.Create do
  try
    RootKey := HKEY_LOCAL_USER;
    OpenKey('Software\DeveloperName\AppName\', True);
    WriteString('Firma', Firma);
    WriteString('S/NR', Serial);
    CloseKey;

    Result := True;
  finally
    Free;
  end;
end;
Noch einer:
Delphi-Quellcode:
Function TMainFormUndSo.RegSaveUserLizense(Firma, Serial: string): boolean;
var
  ver : String;
begin
  Result := False;

  with TRegistry.Create do
  try
    RootKey := HKEY_CURRENT_USER;
    OpenKey('Software\DeveloperName\AppName\', True);
    try
      try
        WriteString('Firma', Firma);
        WriteString('S/NR', Serial);
        Result := True;
      except
        on E: Exception do ShowMessage('Folgender Fehler trat auf:'#13 + E.Message);
      end;

    finally
      CloseKey;
    end;

  finally
    Free;
  end;
end;

procedure TMainFormUndSo.FormCreate(Sender: TObject);
begin
  if not RegSaveUserLizense('Numpsi', 'CA1002030E8554401AF090EFF') then {...} ;
end;
( ungetested ! )

PS.: und ja, mir ist langweilig.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser

Geändert von turboPASCAL (22. Aug 2010 um 11:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dor557
dor557

Registriert seit: 23. Okt 2004
Ort: Walldorf
193 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: Seriennummer Informationen in Registry schreiben

  Alt 23. Aug 2010, 07:59
Erstmal danke für die ganzen Antworten.

Mal eine Frage allgemein zur Registry..... Irgend wie habe ich da den sinn nicht verstanden.

HKEY_CURRENT_USER speichert doch die Daten nur in dem Aktuellen Benutzer der angemeldet ist wie der Schlüssel schon sagt. Oder nicht ?

HKEY_LOCAL_MACHINE speichert die Daten doch SYSTEMWEIT was doch wenn man die Seriennummer nur ein mal eingeben will und nicht bei Jedem Benutzer einzeln mehr sinn machen würde oder ?

Noch eine Frage... Woher kommt HKEY_LOCAL_USER ??? und warum kann ich diesen eintrag in der Regedit nicht direkt sehen ???

Oder bin ich etwas auf dem Holzweg....

@TurboPascal : Danke für die Ausführungen werde diese dann entspechend umsetzen. Ich habe noch einiges in der Software aus zu bessern und mit entsprechender Fehlersuche aus zu statten damit das Debuggen hinterher besser Funktioniert.

@Alle anderen : Auch euch danke. Aber ist es nicht so das ein Runtime Error oder eine Fehlermeldung so oder so auftaucht wenn man die Procedure nicht in eine Try...Except schleife gesetzt hat ?

zumindest war das bisher immer so.

Habe noch nicht so oft Programme in Vista oder Windows 7 in verwendung gehabt. Nun habe ich nen Laptop mit Windows 7 und ich muss mal schauen das ich da das TurboDelphi installieren kann mal schauen ob das klappt. unter vista war es schon schwer genug...
Sascha Nickel
Turbo Delphi 2006

Man muss die Dinge nehmen wie sie kommen, man kann aber auch dafür sorgen das die dinge so kommen wie man sie nehmen möchte.

Geändert von dor557 (23. Aug 2010 um 08:03 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
35.609 Beiträge
 
Delphi XE6 Professional
 
#10

AW: Seriennummer Informationen in Registry schreiben

  Alt 23. Aug 2010, 08:18
Zitat:
HKEY_CURRENT_USER speichert doch die Daten nur in dem Aktuellen Benutzer der angemeldet ist wie der Schlüssel schon sagt. Oder nicht ?
Ja
Zitat:
HKEY_LOCAL_MACHINE speichert die Daten doch SYSTEMWEIT was doch wenn man die Seriennummer nur ein mal eingeben will und nicht bei Jedem Benutzer einzeln mehr sinn machen würde oder ?
Kommt darauf an, ob diese pro Rechner oder pro Nutzer gelten soll. Bei Delphi ist diese z.B. pro Nutzer, und kann so bei der Verwendung von Netzprofilen, von verschiedenen Rechner au verwendet werden.

Zitat:
Noch eine Frage... Woher kommt HKEY_LOCAL_USER ??? und warum kann ich diesen eintrag in der Regedit nicht direkt sehen ???
Heisst auch HKEY_CURRENT_USER und ist nicht unbedingt lokal
Diese wird aufgelöst, du siehst also das Profil des aktuell angemeldeten Nutzers. Ist ein Verweis auf HKEY_USERS\<USER-SID>
Markus Kinzler
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2014 by Daniel R. Wolf