AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein SW lizenzieren: Lizenzkey in Registry eintragen
Thema durchsuchen
Ansicht
Themen-Optionen

SW lizenzieren: Lizenzkey in Registry eintragen

Ein Thema von Mike_on_Tour · begonnen am 1. Okt 2007 · letzter Beitrag vom 1. Okt 2007
Antwort Antwort
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

SW lizenzieren: Lizenzkey in Registry eintragen

  Alt 1. Okt 2007, 12:09
Hallo zusammen,

es gibt folgendes Problem:

Während der Installation eines Programms (als Admin) wird die Seriennummer der Festplatte in die Registry unter HKLM eingetragen. Danach ist das Programm als Demoversion nutzbar. Für die Lizenzierung der Software wird aus dem Namen des Anwenders und der Festplatten-Nr. ein Lizenzkey berechnet. Wird die Lizenzierung von einem Benutzer ohne Adminrechten ausgeführt, kommt es zur Fehlermeldung, die besagt, daß nicht auf die Registry (HKLM) zugegriffen werden kann. Ursache ist das Speichern des Lizenzkeys durch die verwendete Fremdkomponente "TmxProtector". Den Registryzugriff auf HKCU zu ändern beseitigt zwar den Fehler, hat aber zur Folge, daß ein anderer Benutzer wieder mit einer Demoversion arbeiten und neu lizenzieren müßte. Wie läßt sich der Lizenzkey nur einmal, für alle Benutzer, ohne Admin-Zugriffsrechte in die Registry eintragen ? Kann man dafür in der Registry den Key HKEY_USERS\.DEFAULT nutzen ?

Mike
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: SW lizenzieren: Lizenzkey in Registry eintragen

  Alt 1. Okt 2007, 12:17
Das was du willst geht einfach nicht!

Entweder Adminrechte unter HKLM oder mit "normalen" Rechten unter HKCU. KEY_USERS\.DEFAULT wird AFAIK auch Admin-Rechte benötigen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#3

Re: SW lizenzieren: Lizenzkey in Registry eintragen

  Alt 1. Okt 2007, 12:53
Jep, auch dort sind standardmässig Adminrechte notwendig. Wir haben das damals so gelöst dass in beiden Zweigen gecheckt wird. Wenn der Admin installiert, dann ists für alle User zugänglich, ansonsten muss jeder User halt selber nochmal ran. Das ist wohl mit die bequemste Variante. Alternative wäre natürlich auch ein Regfile statt eines Registryeintrags möglich, das könnte dann unter AllUsers liegen worauf alle User Zugriff haben.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: SW lizenzieren: Lizenzkey in Registry eintragen

  Alt 1. Okt 2007, 13:02
Hallo.

Wieso HKEY_USERS/.DEFAULT? Bei HKEY_CURRENT_USER (HKCU) hast du imho vollen Schreibzugriff für dein Programm.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: SW lizenzieren: Lizenzkey in Registry eintragen

  Alt 1. Okt 2007, 13:35
Danke erst mal für die ehrlichen Antworten.
Zitat von Bernhard Geyer:
Das was du willst geht einfach nicht!
Entweder Adminrechte unter HKLM oder mit "normalen" Rechten unter HKCU. KEY_USERS\.DEFAULT wird AFAIK auch Admin-Rechte benötigen.
Das das nicht so einfach geht, ist mir schon klar. Vielleicht muß doch zwingend der Admin die Lizenzierung machen. Dann könnte ich doch Einträge in HKEY_USERS\.DEFAULT machen und jeder Benutzer kann damit arbeiten.

Zitat von OldGrumpy:
... Alternative wäre natürlich auch ein Regfile statt eines Registryeintrags möglich, das könnte dann unter AllUsers liegen worauf alle User Zugriff haben.
So ein Regfile wäre eine Überlegung. Gibts dazu (hier im DP) ein paar Infos dazu ? Habe kurzfristig nichts gefunden.

Zitat von blackdrake:
Wieso HKEY_USERS/.DEFAULT? Bei HKEY_CURRENT_USER (HKCU) hast du imho vollen Schreibzugriff für dein Programm.
HKEY_USERS/.DEFAULT deshalb, weil diese Einträge bei einem neuen (bisher nicht vorhandenen) Nutzer nach HKCU kopiert werden (so die Theorie).

Mike
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: SW lizenzieren: Lizenzkey in Registry eintragen

  Alt 1. Okt 2007, 13:47
Moin Mike,

Zitat von Mike_on_Tour:
Dann könnte ich doch Einträge in HKEY_USERS\.DEFAULT machen und jeder Benutzer kann damit arbeiten.
Nein, das betrifft nur die, die sich neu anmelden, bei denen, die schon ein Profil auf dem Rechner haben, wird das Default-Profil nicht verarbeitet.

Was mir bei der ganzen Sache ein Rätsel ist:
Wozu benötigt eine Demo-Version eine Lizensierung?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: SW lizenzieren: Lizenzkey in Registry eintragen

  Alt 1. Okt 2007, 14:12
Zitat von Christian Seehase:
Nein, das betrifft nur die, die sich neu anmelden, ...
Ja, da habe ich wohl das Kleingedruckte übersehen.

Zitat von Christian Seehase:
Wozu benötigt eine Demo-Version eine Lizensierung?
Nach der Lizenzierung wird aus der Demoversion eine Vollversion mit oder ohne Freischaltung zusätzlicher Module. Ich habe das nicht direkt angegeben, da das primär nichts mit dem Problem zu tun hat und ich ich es auch logisch fand.

Wenn ich die bisherigen Antworten so nehme, könnte die Lösung so aussehen:
  • Installation durch Admin
  • Speichern der Festplattennummer in Registry HKLM
  • Lizenzierung nach Programmstart nur durch Admin
  • Lizenzkey entweder in Registry unter HKLM speichern (Benutzer können hier ja lesend zugreifen) oder als Regfile unter "AllUsers" speichern
Oder ?

Mike
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: SW lizenzieren: Lizenzkey in Registry eintragen

  Alt 1. Okt 2007, 16:56
Hallo.

Ich würde dir ein Regfile innerhalb des Programmverzeichnisses empfehlen. Da müsste dein Programm Schreibzugriff haben (ob das bei Vista auch so ist, weiß ich nicht). Eine Freischaltung des Programmes sollte auf jeden Fall auch von einem normalen Benutzer durchführbar sein. Du könntest die Lizenzdatei auch bei "C:\Dokumente und Einstellungen\(Benutzername)\" speichern, also unter Anwendungsdaten oder direkt unter "Dokumente und Einstellungen", möglichst aber nicht in "Eigene Dateien".

Wie du diese Datei mit deiner Lizenz-VCL oder deiner eigenen Funktion anlegst/strukturierst, weiß ich nicht. Es ist recht schwer, einen einigermaßen sicheren Mechanismus zu entwickeln. Was ist z.B. wenn die Registrierungsdatei oder der Registry-Schlüssel kopiert werden? Sind diese zumindestens mit einem verschlüsselten Benutzernamen oder einem Hardware-Schlüssel versehen? Wenn du bereits eine sichere VCL hast, müsstest du dort nur die Lizenzinfo in einer Textdatei schreiben und lesen.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: SW lizenzieren: Lizenzkey in Registry eintragen

  Alt 1. Okt 2007, 17:55
Zitat von blackdrake":
Ich würde dir ein Regfile innerhalb des Programmverzeichnisses empfehlen. Da müsste dein Programm Schreibzugriff haben (ob das bei Vista auch so ist, weiß ich nicht).
Bisher waren ja die Programmdaten im Programmverzeichnis gespeichert. Das Problem ist nur nicht gleich aufgetreten, weil die meisten Nutzer als Admin gearbeitet haben. Als Nicht-Admin gibt es keine Schreibzugriffe auf die Registry (HKLM) wie bisher und auch das Programmverzeichnis ist "plötzlich" gesperrt. Unter Vista wird das Problem sicher noch deutlicher werden.

Zitat von blackdrake:
Eine Freischaltung des Programmes sollte auf jeden Fall auch von einem normalen Benutzer durchführbar sein. Du könntest die Lizenzdatei auch bei "C:\Dokumente und Einstellungen\(Benutzername)\" speichern, also unter Anwendungsdaten oder direkt unter "Dokumente und Einstellungen", möglichst aber nicht in "Eigene Dateien".
Genau da ist ja der Haken. Alles unter dem Benutzeraccount zu speichern, also Registry HKCU und "Dokumente und Einstellungen ...". Das führt aber dazu, daß jeder Benutzer eine Lizenzierung machen müßte. Das ist natürlich nicht so toll. Es gibt auch keine benutzerdefinierten Einstellungen, sondern einfach nur ein paar Werte für Timer und Importverzeichnisse. Prinzipiell müßte es ja funktionieren, alle Einstellungen unter "Dokumente und Einstellungen\AllUsers..." zu speichern. Als Nicht-Admin kann man die Daten zwar lesen, aber nicht schreiben (Dateibesitzrechte liegen beim Admin). Also geht das auch nicht. Wenn es schon wegen einer kleinen Datei (Ini, Regfile) soviel "Stress" gibt, was soll dann erst mit der Datenbank werden.

Ich überlege jetzt, alles unter "C:\Programme\Gemeinsame Dateien" zu speichern. Der Ordner sollte ja frei zugänglich sein für alle Nutzer, also auch für Nicht-Admins. Oder ?

Zitat von blackdrake:
... Was ist z.B. wenn die Registrierungsdatei oder der Registry-Schlüssel kopiert werden? Sind diese zumindestens mit einem verschlüsselten Benutzernamen oder einem Hardware-Schlüssel versehen?
Ja, es ist alles verschlüsselt.

Mike
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: SW lizenzieren: Lizenzkey in Registry eintragen

  Alt 1. Okt 2007, 20:30
Moin Mike,

Zitat von Mike_on_Tour:
Wenn ich die bisherigen Antworten so nehme, könnte die Lösung so aussehen:
  • Installation durch Admin
  • Speichern der Festplattennummer in Registry HKLM
  • Lizenzierung nach Programmstart nur durch Admin
  • Lizenzkey entweder in Registry unter HKLM speichern (Benutzer können hier ja lesend zugreifen) oder als Regfile unter "AllUsers" speichern
Oder ?
Grundsätzlich: Ja.
Wobei eine Demo-(Test-)Version wohl meist auf Testrechnern installiert werden würde.
Soll die Software in Unternehmen eingesetzt werden, und das womöglich in grösserer Stückzahl, kann ich Dir aber auch sagen, das Du Dir mit einer Hardwareverdongelung keine Freunde machen wirst, da das manuelle Eingriffe je Installation bedeutet. So etwas wie eine Enterprise-Lizense solltest Du auf jeden Fall auch ermöglichen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


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 · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr.
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