Entwickler-Ecke
Dateizugriff - Wo Serial in Registry ablagen
Bitburki - Mi 02.06.10 15:45
Titel: Wo Serial in Registry ablagen
in meiner Setup-Routine meiens Programms speicher ich bei erfolgreicher Seriennummerneingabe die Serial in die Registry:
Delphi-Quelltext
1: 2: 3:
| regist.RootKey:= HKEY_LOCAL_MACHINE; if (regist.OpenKey('SOFTWARE\bitburkis_app', true) = true) then regist.WriteString('serial', szSerialNum); |
Leider haben nun einige User das Problem, daß der Wert nicht in der Registry gespeichert wird (deshalb startet das Programm nicht). Ich frage mich deshalb, soll ich anstatt im Root "hkey_local_machine" lieber im Root "hkey_current_user" speichern? Oder am Besten in beiden?
(Das Problem tritt auch dann auf, wenn unter Adminuser installiert wird und unter anderem User gestartet werden soll)...
Wo würdet ihr so einen Eintrag abspeichern?
Moderiert von
Narses: Delphi-Tags hinzugefügt
Narses - Mi 02.06.10 15:53
Moin!
Bitburki hat folgendes geschrieben : |
Wo würdet ihr so einen Eintrag abspeichern? |
Genau da gehört sowas hin, wenn man den Setup-Typ "Alle Benutzer" gewählt hat. :nixweiss:
Für "Nur für mich" wäre dann HKCU angebracht, selber Zweig.
Die spannende Frage ist also eher: warum kann der Schlüssel nicht angelegt werden oder zumindest nicht gelesen? :gruebel: Es scheint ja Leute zu geben, bei denen alles funktioniert. Was also unterscheidet die funktionierenden von den nicht-funktionierenden Installationen?
cu
Narses
Bitburki - Mi 02.06.10 16:10
Das weiß ich eben auch nicht.
Das Setup geschieht über Macrovision Installshield, und da gibts dann ne Integration von nem Serial Dialog. Unter der Serialeingabe steht dann die Option (jeden, der diesen Computer verwendet || oder || Nur für mich). Aber wie komme ich an die Daten ran? Vielleicht liegts ja daran
---
Moderiert von
Narses: Beiträge zusammengefasst---
Achja, meine Function schaut in der DLL so aus:
Delphi-Quelltext
1:
| function Validate(mainwin: Hwnd; szSrcDir, szSupport, szSerialNum, szDataBase: LPSTR): Integer; export; stdcall |
Kann ich dort irgendwo abfragen?
Moderiert von
Narses: Delphi-Tags hinzugefügt
Narses - Mi 02.06.10 16:24
Moin!
Narses hat folgendes geschrieben : |
Was also unterscheidet die funktionierenden von den nicht-funktionierenden Installationen? |
Bitburki hat folgendes geschrieben : |
Das weiß ich eben auch nicht. |
Naja, wie willst du das dann jemals beheben? :?
Du könntest zunächst mal diese =TRUE-Abfrage rausschmeißen:
Delphi-Quelltext
1:
| if (regist.OpenKey('SOFTWARE\bitburkis_app', true) = true) then |
cu
Narses
SvenAbeln - Mi 02.06.10 16:50
Wie greifst du denn auf die Registry zu um die Seriennummer zu prüfen?
Unter Windows Vista und Windows 7 darf ein normaler User die Keys unter HKEY_LOCAL_MACHINE nur
readonly öffnen.
Delphi-Quelltext
1: 2: 3:
| regis:= TRegistry.Create(KEY_READ); regis.Access := KEY_READ; |
Bitburki - Do 03.06.10 14:38
Naja, schreiben tu ich wie im Eingangspost beschrieben.
Lesen würde auch klappen, wenn er denn geschrieben hätte...
Ich vermute es liegt hier ein Berechtigungsproblem vor.
Ich habs jetzt erstmal so gelöst, daß wenn er im Setup die Serial richtig eingegeben hat, ich das Setupprogramm den Registrywert hart vergebe (import reg-file). Das scheint zu funktionieren
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!