![]() |
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:
Gruß Philipp
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; |
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 |
Re: Demo mit Ini's
Allerdings ist das mehr als unsicher. Jeder halbwegs intelligente User könnte das manipulieren.
|
Re: Demo mit Ini's
Ja, du hast Recht, aber ich wollte so was mal ausprobieren :stupid:
|
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; |
Re: Demo mit Ini's
Zitat:
|
Re: Demo mit Ini's
Upps, vergessn
|
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; |
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.
|
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:
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.
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; Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz