Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Inno Setup Lizenz abfragen (https://www.delphipraxis.net/48965-inno-setup-lizenz-abfragen.html)

Osse 3. Jul 2005 14:56


Inno Setup Lizenz abfragen
 
Hallo, :hi:

ich arbeite seit 3 tagen mit Inno setup, um mein Programm bedienerfreundlich zu installieren.

Nun bin ich an einen Punkt angekommen, wo ich nicht mehr weiter weiß.
Ich möchte einen Lizenzschlüssel abfragen, kein Passwort.
Dafür hab ich leider kein Script gefunden, sondern nur eins für ein Passwort.

Dies reicht aber nicht, denn es soll möglich sein einen von 5 Lizenzschlüsselen einzugeben.
Hat jemand schonmal ein solches Problem mit Inno gelöst?

Danke

mschaefer 3. Jul 2005 15:09

Re: Inno Setup Lizenz abfragen
 
Moin, moin,

Du kannst mit Inno-Setup während des Setups eigenen Programme starten. Da wird de Weg liegen, dass Du ein eigenes Programm mit Deiner Lizenzlogig hast, was die Freigabe organisiert. Von InnoSetup ist das eigentlich nicht wirklich zu leisten.

Grüße // Martin

ltiefland 3. Jul 2005 15:16

Re: Inno Setup Lizenz abfragen
 
Hier jetzt mal ein Beispiel, wie ich es gemacht habe (bei der Abfrage eines Datenbankservers für meine Delphi-Programme):

Delphi-Quellcode:
var
   Server:String;
   Page: TInputQueryWizardPage;
FUNCTION NextButtonClick(CurPageID:Integer):Boolean;
BEGIN
   IF CurPageID=wpSelectComponents THEN
   BEGIN
      IF (NOT isComponentSelected('wamp')) THEN
      BEGIN
         if Server='localhost' then
         BEGIN
            IF MsgBox('Haben Sie MySQL wirklich auf Ihrem System installiert?',mbConfirmation,mb_YESNO or MB_DEFBUTTON2) =idYes THEN
            BEGIN
               Result:=TRUE;
            END
            ELSE
            BEGIN
               Result:=FALSE;
            END;
         END
         ELSE
         BEGIN
            Result:=True;
         END;
      END
      ELSE
      BEGIN
         Result:=TRUE;
      END;
   END
   ELSE
   BEGIN
      IF CurpageID=Page.ID THEN
      BEGIN
         Server:=Page.Values[0];
         IF (Server <>'') THEN
         BEGIN
            Result:=True;
         END
         ELSE
         BEGIN
            Server:='localhost';
            IF MsgBox('Sie haben keinen Server angegeben. Standardserver localhost wird verwendet. Ist das richtig?',mbConfirmation,mb_YESNO or MB_DEFBUTTON2) =idYes THEN
            BEGIN
               Result:=True;
            END
            ELSE
            BEGIN
               Result:=False;
            END;
         END;
      END
      ELSE
      BEGIN
         Result:=True;
      END;
   END;
END;

procedure InitializeWizard;
BEGIN
   Page:=CreateInputQueryPage(wpSelectDir,Expandconstant('{cm:SampleFormCaption}'),Expandconstant('{cm:SampleFormCaption}'), Expandconstant('{cm:SampleFormDescription}'));
   Page.Add('Server: ', False);
   Page.Values[0]:='localhost';
END;

function GetServer(Param: String):String;
begin
   if Server <>'' then
   begin
      Result:=Server;
   end
   else
   begin
      Result:=Param;
   end;
end;
Du mußt das ganze natürlich auf Deine Gegebenheiten anpassen.

MrKnogge 3. Jul 2005 15:22

Re: Inno Setup Lizenz abfragen
 
Das geht auch mit InnoSetup Stichwort "Serial"

PierreB 3. Jul 2005 15:29

Re: Inno Setup Lizenz abfragen
 
Klickst du hier

Osse 3. Jul 2005 20:46

Re: Inno Setup Lizenz abfragen
 
Vielen Dank, für eure Hilfe. :thumb:

Jetzt funktioniert es wenigstens, aber ich verstehs nicht ganz.

Der Code ist zwar programmiertechnisch kein Leckerbissen aber wäre toll wenn ihr mal rübergucken könntet.
Zunächst wird die Seite erstellt und zwar anstelle der Passwortseite, wenn ich das richtig verstehe.

Wenn ich aber bei meiner Funktion NEXTButton wpPasswort anstelle der 100 einsetze funktioniert es nicht :gruebel: ??

HAbs durchs debuggen rausgfunden, dass ich die Seiten ID 100 abfragen muss, hab keine Ahnung wieso ich 100 als Rückgabewert bekomme?? Müsste noch eigntlich auch mit wpPasswort funktionieren, denn ich ersetze doch die Seite, oder??

Delphi-Quellcode:
var
   Page: TInputQueryWizardPage;

procedure InitializeWizard;
BEGIN
   Page:=CreateInputQueryPage(wpPassword,'Lizenzabfrage', 'PEAK Lizenz abfrage', 'Bitte geben Sie die Lizenz des PEAK-Treibers ein und drücken Sie Weiter');
   Page.Add('Lizenzcode ', False);
END;


FUNCTION NextButtonClick(CurPageID:Integer):Boolean;
BEGIN
  IF not (CurPageID=100) THEN
    BEGIN
      Result := True;
    END
  ELSE
    BEGIN
      IF (Page.Values[0] = '1') OR (Page.Values[0] = '2') OR (Page.Values[0] = '3')
      OR (Page.Values[0] = '4') OR (Page.Values[0] = '5') OR (Page.Values[0] = '6')THEN
        BEGIN
          Result:=TRUE;
        END
      ELSE
        BEGIN
          Result:=FALSE;
          if MsgBox('Die Lizenz ist nicht korrekt. Bitte versuchen Sie es erneut!', mbConfirmation, MB_OK) = IDOK then
            BEGIN
              Page.Values[0] := ' ';
            END;
        END;
    END;
END;

MathiasSimmack 3. Jul 2005 20:49

Re: Inno Setup Lizenz abfragen
 
Zitat:

Zitat von Osse
HAbs durchs debuggen rausgfunden, dass ich die Seiten ID 100 abfragen muss, hab keine Ahnung wieso ich 100 als Rückgabewert bekomme??

Normalerweise reicht es, direkt die ID der Seite abzufragen. Dafür gibt´s eine eigene Eigenschaft:
Delphi-Quellcode:
if CurPageId = Page.ID then
begin
  { ... }
end
else
  Result := true;

Osse 3. Jul 2005 21:04

Re: Inno Setup Lizenz abfragen
 
Hey Mathias,

habs ja so versucht, aber ich bekomme immer die 100 als Rückgabewert, obwohl ich die 3 bekommen müsste???
Naja, hätte ja sein können, das jemand das weiß.

So funktionierts net, obwohl es nach meiner kleinen "Logik" richtig sein müsste:
[code=delphi]
Code:
var
   Page: TInputQueryWizardPage;

procedure InitializeWizard;
BEGIN
   Page:=CreateInputQueryPage(wpPassword,'Lizenzabfrage', 'PEAK Lizenz abfrage', 'Bitte geben Sie die Lizenz des PEAK-Treibers ein und drücken Sie Weiter');
   Page.Add('Lizenzcode ', False);
END;


FUNCTION NextButtonClick(CurPageID:Integer):Boolean;
BEGIN

  IF CurPageId = wpPassword THEN
    BEGIN
      IF (Page.Values[0] = '#211660') OR (Page.Values[0] = '#211661') OR (Page.Values[0] = '#211662')
      OR (Page.Values[0] = '#211663') OR (Page.Values[0] = '#211664') OR (Page.Values[0] = '#211665')THEN
        BEGIN
          Result:=TRUE;
        END
      ELSE
        BEGIN
          Result:=FALSE;
          if MsgBox('Die Lizenz ist nicht korrekt. Bitte versuchen Sie es erneut!', mbConfirmation, MB_OK) = IDOK then
            BEGIN
              Page.Values[0] := ' ';
            END;
        END;
    END
   Else
    BEGIN
      Result := True;
    END;

END;

MathiasSimmack 3. Jul 2005 21:08

Re: Inno Setup Lizenz abfragen
 
Jetzt fragst du doch aber die Passwortseite ab. :gruebel: Und sind das nun die echten Codes? :lol:

Osse 3. Jul 2005 21:33

Re: Inno Setup Lizenz abfragen
 
Jo, aber es läuft so halt nicht!!! Egal, ich lass die erste Variante, obwohl ich es nicht verstehe :gruebel: , ist zwar unbefriedigend aber was solls.

Hätte ich mal am Wochenende nicht so viel :cheers: und anschließend :wall: sollen..


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 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