Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Demo mit Ini's (https://www.delphipraxis.net/62952-demo-mit-inis.html)

mOzZzI 11. Feb 2006 20:49


Demo mit Ini's
 
Hai,
wie schaffe ich es mit einer IniFile das Datum reinzuschreiben und dann z.B. nach 14 Tagen, sich das Programm nicht mehr starten lässt, sowas wie eine Demo..., also das er jedes mal überprüft wie viele Tage schon seit dem ersten Start des Programms vergangen sind...

Delphi-Quellcode:
procedure evaluation;
var ini : TIniFile;
begin
  ini := TIniFile.Create('Programmpfad');
 ini.writedate('DATE', 'STARTDATE', Date);
  //??? Wie mache ich das mit das er überprüft wie viele Tage vergangen sind??
  ini.free;
end;
Gruß Philipp

Zacherl 11. Feb 2006 20:52

Re: Demo mit Ini's
 
Du musst mit StrToDate das Datum in einen TDateTime Wert umwandeln. Mit DecodeDateTime kannst du den Wert in Tage, Stunden, Minuten, etc zerlegen.

Den Rest dürftest du ausrechnen können.

Florian

3_of_8 11. Feb 2006 20:54

Re: Demo mit Ini's
 
Allerdings ist das mehr als unsicher. Jeder halbwegs intelligente User könnte das manipulieren.

mOzZzI 11. Feb 2006 21:07

Re: Demo mit Ini's
 
Ja, du hast Recht, aber ich wollte so was mal ausprobieren :stupid:

mOzZzI 11. Feb 2006 21:24

Re: Demo mit Ini's
 
also, bis jetzt bin ich so weit gekommen, aber das funzt nicht...

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var ini: TIniFile;
begin
  ini:= TiniFile.Create('D:\config.ini');
  ini.WriteDate('DATE', 'STARTDATE', Date);
  ini.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var ini: TiniFile;
begin
ini:= TiniFile.Create('D:\config.ini');
Label1.Caption:=ini.ReadString('DATE', 'STARTDATE', DateToStr(Date));
Label2.Caption:=ini.ReadString('DATE', 'STARTDATE', DecodeDateTime(Date)) //Undefinerter Bezeichner DecodeDateTime;

Matze 11. Feb 2006 21:26

Re: Demo mit Ini's
 
Zitat:

Zitat von mOzZzI
Delphi-Quellcode:
//Undefinerter Bezeichner DecodeDateTime;

Wie wäre es denn, einmal einen Blick in die OH zu werefen? Dann wüsstest du sofort, dass du die Unit DateUtils einbinden musst.

mOzZzI 11. Feb 2006 21:28

Re: Demo mit Ini's
 
Upps, vergessn

mOzZzI 11. Feb 2006 22:49

Re: Demo mit Ini's
 
Tutmir Leid aber ich komme echt nicht wieter...

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var ini: TIniFile;
begin
  ini:= TiniFile.Create('D:\config.ini');
  ini.WriteDate('DATE', 'STARTDATE', Date);
  ini.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var ini: TiniFile;
jahr:word;

begin
ini:= TiniFile.Create('D:\config.ini');
Label1.Caption:=ini.ReadString('DATE', 'STARTDATE', DateToStr(Date));
Label2.Caption:=
DaysBetween(DecodeDate(Jahr, Monat , Tag))-DaysBetween(now); //<< Hier komme ich nicht weiter
end;

Matze 12. Feb 2006 08:37

Re: Demo mit Ini's
 
Jetzt schau doch mal in die OH, wie oft denn noch? Dann wüsstest du, dass DaysBetween 2 Parameter erwartet. Für das, was du da fabriziert hast, würde DaysBetween ja völlig witzlos sein.

marabu 12. Feb 2006 10:25

Re: Demo mit Ini's
 
Hallo Philipp,

es macht keinen Sinn, dass du im Ereignis OnCreate() der Form das Startdatum überschreibst. Das Startdatum sollte einzig die Installationsroutine festlegen. Dein Programm sollte das gespeicherte Datum nur mit dem Tagesdatum vergleichen. Gibt es kein Startdatum, dann wurde nicht ordentlich installiert. Damit niemand durch tägliche Vorgabe eines passenden Datums deinen Schutz unterläuft, solltest du das Datum auch nicht im Klartext schreiben:

Delphi-Quellcode:
uses
  DateUtils;

const
  Section = 'Freischaltung';
  Key = 'Testbeginn';
  LuPhiCode = $9A53;
  TrialDays = 30;

var
  StartDay: Word;

begin
  StartDay := ini.ReadInteger(Section, Key, 0);
  if (StartDay = 0) or (DaysBetween(date, StartDay xor LuPhiCode) > TrialDays) then
    // Programm beenden
  else
    // Weiter
  ;
end;
Ein richtiger Schutz ist das aber nicht - mehr eine Spielerei. Sobald du ein geniales Programm geschrieben hast, brauchst du einen richtigen Schutz. Ist das Programm nicht so genial, dann würde ich diesen Schutz nicht einbauen, sonst mag es niemand benutzen.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.
Seite 1 von 3  1 23      

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