AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Demoversion Programm beenden

Ein Thema von blondervolker · begonnen am 31. Jan 2012 · letzter Beitrag vom 26. Apr 2012
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von blondervolker
blondervolker

Registriert seit: 14. Sep 2010
Ort: Bei: Leeeiipzzhhh
381 Beiträge
 
Delphi XE2 Architect
 
#1

Demoversion Programm beenden

  Alt 31. Jan 2012, 10:34
Ich bastle gerade an einem Beispiel um eine Demoversion zu erstellen.
Die Tools die man kaufen kann kosten richtig Kohle...

Aber mit meinem "Hobby-Wissen" komme ich nicht weiter.
Habe mal ein kleines Beispiel als Demo im Anhang.

In der Lektüre Grundlagen,Profiwissen,Kochbuch ist nix zu finden.

Vielleicht kann jemand helfen,wie man die die Daten in der Demo
auch speichern kann.

Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button2: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);





  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  zaehler: Integer;

implementation

{$R *.dfm}





procedure TForm1.Button2Click(Sender: TObject);
begin
Inc(Zaehler);
  Edit1.Text := IntToStr(Zaehler);
  if Edit1.Text = '1then Label1.Caption:='1.Versuch';
  if Edit1.Text = '2then Label1.Caption:='2.Versuch';
  if Edit1.Text = '3then Label1.Caption:='Testzeitraum ist beendet!';
  if Edit1.Text = '3then Button2.Caption:='Ende!';
  if Edit1.Text = '4then Form1.Close;

end;







procedure TForm1.FormActivate(Sender: TObject);
var f:TextFile; zahl:Integer;
begin
AssignFile(f,ExtractFilePath(Application.ExeName)+'tes.dat');
Reset(f);
Readln(f,zahl);
Inc(zahl);
CloseFile(f);
Rewrite(f);
Writeln(f,zahl);
CloseFIle(f);

Label2.Caption:='Du hast das Prog schon '+IntToStr(zahl)+' mal gestartet.Nun ist Feierabend';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Zaehler := 0;
  Edit1.Text := IntToStr(Zaehler);

end;

end.
Angehängte Dateien
Dateityp: rar Demo.rar (203,8 KB, 3x aufgerufen)
www.bewerbungsmaker.de
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Demoversion Programm beenden

  Alt 31. Jan 2012, 10:39
Mein Rat: vergiss es. Es gibt schon einige Threads hier dazu mit dem Fazit: man kann ein Programm nicht zu 100% schützen, man kann höchstens den Crack-Aufwand erhöhen. Und das ist mit externen Textdateien schon gar nicht zu erreichen. Inverstier daher Deine Zeit lieber in das eigentliche Programm, da hast Du mehr gekonnt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von blondervolker
blondervolker

Registriert seit: 14. Sep 2010
Ort: Bei: Leeeiipzzhhh
381 Beiträge
 
Delphi XE2 Architect
 
#3

AW: Demoversion Programm beenden

  Alt 31. Jan 2012, 10:45
Ja das stimmt.Aber ich schaue nicht nur durch das Delphi Rohr.
Die Mehrheit der Bevölkerung beschäftigt sich nicht mit dem Cracken und
Rückstellen von Systemzeiten...Die Mehrheit sind Anwender sind froh,wenn
sie ein Programm richtig bedienen können.
Ich denke da gerade an meine Frau...
Ich möchte nur Wissen wie ich oben schon genannt,die Anzahl der Programmaufrufe
speichern kann.
www.bewerbungsmaker.de

Geändert von blondervolker (31. Jan 2012 um 10:48 Uhr)
  Mit Zitat antworten Zitat
Steku

Registriert seit: 12. Mai 2008
181 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Demoversion Programm beenden

  Alt 31. Jan 2012, 10:46
Mein Rat: vergiss es. Es gibt schon einige Threads hier dazu mit dem Fazit: man kann ein Programm nicht zu 100% schützen, man kann höchstens den Crack-Aufwand erhöhen. Und das ist mit externen Textdateien schon gar nicht zu erreichen. Inverstier daher Deine Zeit lieber in das eigentliche Programm, da hast Du mehr gekonnt.
Jo, ist wohl so...

Und als kleines Tool kannst du es ja mal damit versuchen...
http://sourceforge.net/projects/tponguard/

Grüße
Steku
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Demoversion Programm beenden

  Alt 31. Jan 2012, 10:47
Direkt in das Anwendungsverzeichnis zu schreiben ist eine ganz doofe Idee - oder muss der Anwender zwingend als Administrator arbeiten

Und das ist ja so durch die Brust ins Auge gehüpft und am Fuß wieder rausgesprungen:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  // Zähler erhöhen, ok
  Inc(Zaehler);
  // Zähler in ein Edit-Feld schreiben (Int->Str) ... öh soll der User das ändern können???
  Edit1.Text := IntToStr(Zaehler);
  // Wieso denn jetzt wieder Str->Int, du hast doch Zugriff auf Zaehler???
  if Edit1.Text = '1then Label1.Caption:='1.Versuch';
  if Edit1.Text = '2then Label1.Caption:='2.Versuch';
  if Edit1.Text = '3then Label1.Caption:='Testzeitraum ist beendet!';
  if Edit1.Text = '3then Button2.Caption:='Ende!';
  // Form1 ist eher fehleranfällig. Besser:
  // HauptForm schließen: Application.MainForm.Close
  // Diese Form schließen: Self.Close oder einfach Close
  if Edit1.Text = '4then Form1.Close;
end;
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  Inc(Zaehler);
  Edit1.Text := IntToStr(Zaehler);
  case Zaehler of
    1: Label1.Caption:='1.Versuch';
    2: Label1.Caption:='2.Versuch';
    3:
      begin
        Label1.Caption:='Testzeitraum ist beendet!';
        Button2.Caption:='Ende!';
      end;
    4: Close;
  end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Demoversion Programm beenden

  Alt 31. Jan 2012, 10:51
Ja das stimmt.Aber ich schaue nicht nur durch das Delphi Rohr.
Die Mehrheit der Bevölkerung beschäftigt sich nicht mit dem Cracken und
Rückstellen von Systemzeiten...Die Mehrheit sind Anwender die Fro sind,wenn
sie ein Programm richtig bedienen können.
Ich denke da gerade an meine Frau...
Ich möchte nur Wissen wie ich oben schon genannt,die Anzahl der Programmaufrufe
speichern kann.
Um eine unknackbare Demo-Version herzustellen solltest du einige Teile nicht in das Programm kompilieren.
Hat man eine Speicher-Routine, dann kann man diese in der Demo einfach ersetzen durch eine Hinweis-Box: "Wenn Sie das Programm kaufen, dann könnte ich auch speichern!"

Delphi-Quellcode:
{$DEFINE DEMO}

...

procedure SaveTheData;
begin
{$IFDEF DEMO}
  ShowMessage( 'Wenn Sie das Programm kaufen, dann könnte ich auch speichern!' );
{$ELSE}
  // Hier jetzt den echten Code zum speichern rein
{$ENDIF}
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von blondervolker
blondervolker

Registriert seit: 14. Sep 2010
Ort: Bei: Leeeiipzzhhh
381 Beiträge
 
Delphi XE2 Architect
 
#7

AW: Demoversion Programm beenden

  Alt 31. Jan 2012, 10:57
Soweit bin ich noch nicht vorgedrungen.

Die "tes.dat" wird noch versteckt in einem anderen Ordner.
Dieses hier ist nur ein Beispiel.Und Windows hat viele Ordner
Ein Dank an Bill Gates.

Der Nutzer soll die Anwendung nur zeitlich oder als Beispiel 30 Programmaufrufe
nutzen können.

Ist es möglich den Nutzungszeitraum oder die Aurufe irgenwo direkt in der
Form zu speichern?
www.bewerbungsmaker.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#8

AW: Demoversion Programm beenden

  Alt 31. Jan 2012, 10:58
Demos mit Zeitbegrenzung sind nicht sicher machbar.
- die Uhr kann man verstellen
- eine Uhrzeit aus dem Internetabfragen, kann man vergessen, da man meistens keinen aktiven Internetzugang voraussetzen kann und über diverse Tricks kann man sowas sowieso umgehen

Die einzig sichere Möglichkeit ist:
- bestimmten Code garnicht erst einzukompileren ('nen Button zu deaktivieren hildt nix, denn der läßt sich extrem einfach wieder aktivieren) und eine spezielle Demo-Version rauszubringen, welche sich nicht auf eine vollversion patchen läßt, da dieser nicht enthalten ist.
- also irgendwas weglassen, welchen einen dazu drängt sich dann doch mal die Vollversion zu besorgen

Zitat:
Die "tes.dat" wird noch versteckt in einem anderen Ordner.
Dieses hier ist nur ein Beispiel.Und Windows hat viele Ordner
Mir egal.
In vielen Ordner hat dein Programm sowieso keine Zugriffsrechte und verstecken kannst'e vor mir eh nix.
Und wenn sich dein Programm irgendwo an meinem System zu schaffen macht, mir dieses mutwillig zumüllen will, dann fliegt dein Programm von der Platte und ich nehm mir ein nettes Programm eines anderen Herstellers. (ich bin mir sicher, daß es besseren Alternativen geben wird)

PS: In der FORM speichern? In einer unverschlüsselten Resource, welche sich leicht ändern läßt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (31. Jan 2012 um 11:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Demoversion Programm beenden

  Alt 31. Jan 2012, 11:03
Auch wenn ein Betriebssystem viele Ordner hat (das hat mit Bill Gates gar nichts zu tun), so haben die alle einen Sinn und Zweck - man muss sich nur damit befassen.

Es gibt zwar die Möglichkeit an eine Anwendung Daten zu hängen und dort die Anzahl der Aufrufe zu vermerken, allerdings reagieren da die Virenscanner etwas ungehalten.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#10

AW: Demoversion Programm beenden

  Alt 31. Jan 2012, 11:22
Ich nehme für sowas folgendes Verzeichnis:
C:\Users\[user]\AppData\Roaming

Den Ordner AppData findet ein normaler User eh nicht.
Da kannst Du ja ne verschlüsselte Datei reinlegen die die Aufrufe mitloggt. Setze bei der Datei einen bestimmten Timestamp der weit in der Vergangenheit liegt,
wenn dieser nicht mehr stimmt ist die Demoversion zu.

Um die Demo zu aktivieren muss bei mir eine Onlineverbindung bestehen und ich speichere die HDD-Id in eine Datenbank,
wenn die ID vorhanden, kann die Demo nicht mehr aktiviert werden.


Nicht 100 % sicher, aber für die meisten Anwender reicht es.

Gruß
Philip
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:41 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