Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Lizensierung eines Programms auf mehreren Rechnern (https://www.delphipraxis.net/102639-lizensierung-eines-programms-auf-mehreren-rechnern.html)

little_budda 1. Nov 2007 15:47


Lizensierung eines Programms auf mehreren Rechnern
 
Hallo,

ich habe ein Programm geschrieben welches auf einem Rechner installiert wird (Administrator-PC).
Bei Start hat es nur einen Benutzer (Der Admin)
Der Admin kann weitere Benutzer angelegen, welche sich dann am Programm anmelden können.
Die angelegte Benutzerliste bekommen alle Benutzer codiert per USB-Stick.
(Jeder Benutzer hat einen)
Die Benutzerliste muss beim ersten Programmstart importiert werden.

Es können maximal 20 Benutzer angelegt werden.
Bisher gut.

Ich wollte gerne das jeder Benutzer das Programm auf maximal 3 PCs nutzen kann.
Wie kann ich verhindern dass ein Benutzer seine Benutzerliste auf mehr als drei PCs importiert?

Ich wollte die Importdatei patchen nach jedem Import,
aber das ist mit einer simplen Sicherheitskopie der Benutzerliste zu umgehen.

Ich wäre recht dankbar für eine Idee.

:gruebel:

Mr.Yeah 1. Nov 2007 16:53

Re: Lizensierung eines Programms auf mehreren Rechnern
 
Ich sehe nur eine Möglichkeit:
Beim Exportieren der Datei wird sie verschlüsselt und mit einer ID versehen. Schlüssel und ID werden an einen Server geschickt, der sie speichert. Beim Importieren der Datei fragt deine Software beim Server nach dem Schlüssel. Der Server überprüft, wie oft die Datei benutzt wurde. Wenn sie zu oft benutzt wurde, rückt er nichts raus. Dies setzt voraus, dass ein entsprechender Server eingerichtet ist.
Ich habe das dumpfe Gefühl, dass diese Lösung nicht die ist, die du gesucht hast. Leider fällt mir nichts anderes ein.

Poolspieler 1. Nov 2007 17:13

Re: Lizensierung eines Programms auf mehreren Rechnern
 
Nur so eine Idee:
Wie wäre es, wenn Du den Vorschlag mit der ID von Mr.Yeah aufgreifst und in die verschlüsselte Datei die Seriennummer des USB-Sticks schreibst, auf dem die Datei stehen muss - so wäre schon mal ausgeschlossen, dass man Deine Liste per Mail verteilen kann....
Wie und ob man die Seriennummer eines USB-Sticks auslesen kann, weiss ich nicht.

Bleibt immernoch das Problem, dass jemand die Datei vorher kopieren könnte...

Als Alternative fällt mir nur noch ein:
- Dateisystem des USB-Sticks selbst programmieren... ist ja auf einen Nachmittag gemacht ;-))
- kommerzielles Hardwaredongle nutzen - z.B. von Aladin

Gruß und noch viel Erfolg,
Poolspieler

SirThornberry 1. Nov 2007 17:50

Re: Lizensierung eines Programms auf mehreren Rechnern
 
ich würde es so machen.
Du hast einen Admin PC und X Client PCs.
Um auf Client-PC X das Programm nutzen zu können muss man vorher ein Tool ausführen welches einem eine ID ausgibt (welche anhand der Hardware erzeugt wird). Diese ID gibt man dann am Admin-PC ein um eine Benutzerliste zu erzeugen. Die erzeugte Benutzerliste beinhaltet die Hardware-ID von Client-PC X und kann dadurch nur auf diesem Client-PC importiert werden.

Mr.Yeah 1. Nov 2007 17:50

Re: Lizensierung eines Programms auf mehreren Rechnern
 
Zitat:

Zitat von Poolspieler
Wie wäre es, wenn Du den Vorschlag mit der ID von Mr.Yeah aufgreifst und in die verschlüsselte Datei die Seriennummer des USB-Sticks schreibst, auf dem die Datei stehen muss

Daran habe ich auch gedacht, aber
Zitat:

Zitat von Poolspieler
Bleibt immernoch das Problem, dass jemand die Datei vorher kopieren könnte...

Zitat:

Zitat von Poolspieler
kommerzielles Hardwaredongle nutzen

Auch eine gute Idee. Hab nicht daran gedacht.

little_budda 1. Nov 2007 18:11

Re: Lizensierung eines Programms auf mehreren Rechnern
 
danke für die Tipps.

Die Variante von SirThornberry gefällt mir prinzipiell am besten nur verplichte ich den Anwender zum Laufen
(Erst zu seinem PC - Dann zum Admin PC - Dann wieder zu seinem PC) -> Sehe ich als nicht so vorteilhaft an.

Die Variante von Poolspieler mir dem Programmieren des Dateisystems hört sich zwar interessant an,
wird aber meine Fähigkeiten schätzungsweise übersteigen.

Die Idee von Mr.Yeah mit dem Server finde ich am besten, da alle meine Client PC online sind
und ich auch einen Server im Netz habe.
Ich habe nur keine Ahnung wie man so etwas realisiert.
Eine PHP-Seite erstellen welche aus einer Datenbank einen Schlüssel holt kann ich machen.
Nur wie spreche ich die Formularfelder der Seite per Delphi an?

:gruebel:

Mr.Yeah 2. Nov 2007 15:07

Re: Lizensierung eines Programms auf mehreren Rechnern
 
Das Beste für solch eine Aufgabe scheint Delphi für PHP zu sein.
Ich habe aber überhaupt keine Ahnung, da ich mich bisher noch nie mit irgendwelchen Webanwendungen beschäftigt habe.

little_budda 2. Nov 2007 15:27

Re: Lizensierung eines Programms auf mehreren Rechnern
 
Hallo,
ich meinte eigentlich folgendes:

Ich habe mir jetzt eine Seite gebaut die einen beliebigen Wert in eine Datenbank einträgt.
Eine weitere Seite gibt bei Eingabe dieses Wertes drei mal einen Schlüssel und danach immer einen ErrorCode zurück.
Klappt gut.

Ich möchte ja nun diese Aufrufe nicht händisch sondern über Delphi abwickeln.
Nach Möglichkeit ohne eine von beiden Seiten anzuzeigen.
So irgendwie über POST und GET.

Gruß Holger.

Zwixx 2. Nov 2007 15:28

Re: Lizensierung eines Programms auf mehreren Rechnern
 
also ich würde zur übergabe an die Webseite die Indy-Komponenten nutzen. Diese sind recht einfach nutzbar. Kleines Beispiel:
Delphi-Quellcode:
user : TStringList;  
...
user := TStringlist.create;
user.Clear;
user.Add('TEXT=blablabla');
http := IdHTTP.Post('http://url.to/server/index.php', user);
das ist jetzt einfach nur schematisch... sollte aber ca. so klappen.

Phoenix 2. Nov 2007 15:44

Re: Lizensierung eines Programms auf mehreren Rechnern
 
Hrm. Ganz ehrlich? Ich würde das ganze dann direkt über SOAP machen.

Also kein Webformular, welches dann umständlich per Indy geladen und gefüttert wird, sondern direkt einen Webservice. Hat den Vorteil, das man aus dem WSDL Des Webservices gleich den passenden Delphi-Code generieren lassen kann. Man benutzt den Service dann nur noch, anstelle umständlich Formulare 'Fernbedienen' zu müssen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:52 Uhr.
Seite 1 von 2  1 2      

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