Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

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

AW: Seriennummer Informationen in Registry schreiben

  Alt 22. Aug 2010, 12: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 12:21 Uhr)
  Mit Zitat antworten Zitat