Autor Beitrag
LonghornUser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Do 04.08.05 18:12 
Hallo,

ich habe mal eine Frage: Kann man irgendwie merken, dass der user an der zeit rumpfuscht ? Damit meine ich aber nicht etwa Minuten, Stunden oder gar Sekunden, sondern Tage. Geht das irgendwie ?
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Do 04.08.05 19:00 
Titel: Tage rumpfuschen
Ich hatte dieselbe Frage bei meinem Tool, was an jedem neuen Wochentag das Hintergrundbild ändert. Da habe ich das gelöst, indem man das Programm in Autostart geschrieben hat, damit es immer aktiv ist. Natürlich müsste es auch im Systray laufen um die Arbeit nicht zu stören.
Also beim Programmstart also auch beim Start von Windows, da das Programm ja mitstartet, schreibst du denn aktuellen Wochentag in eine Variable:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
uses SysUtils;

var wochentag: string;
  datum: TDateTime;
begin
  datum := date; //heute
  wochentag := LongDayNames[DayOfWeek(datum)];


Und dann baust du nen Timer ein (Interval 1 Millisekunde) der ständig den Wochentag in eine zweite Variable schreibt. Und dann vergleichst du beide:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure Timer1onTimer (Sender:Tobject);
var wochentag2:string;datum: TDateTime;
begin
  datum := date; //heute
  wochentag2 := LongDayNames[DayOfWeek(datum)];

//vergleichen der beiden Werte
if not (wochentag=wochentag2) then
begin
showmessage('Da hat jemand den Wochentag geändert.');
wochentag:=wochentag2;
end;


Ich habs jetzt auf die schnelle zusammengekramt und bin mir nicht sicher obs richtig ist, aber mein Programm arbeitet sehr zuverlässig!

MFG Koller
Holgerwa
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 325

WIN XP Pro, Vista Business
Delphi 7 Pro, BDS 2006 Pro
BeitragVerfasst: Do 04.08.05 19:12 
Hallo,

ich glaube nicht, daß Du hier etwas Zuverlässiges tun kannst.
Du kannst zwar ein Programm haben, das z.B. den aktuellen "Tag" irgendwo (ini oder Registry) abspeichert, und wenn der Benutzer das Datum vor diesen "Tag" zurückstellt, könnte das Programm dies beim nächsten Start feststellen.
Änderungen in die Zukunft gehen natürlich nicht, denn Du kannst ja nie wissen, wie lange der Rechner oder Dein Programm nicht gelaufen sind, um eine ungültige Veränderung festzustellen.

Da es sich so anhört, als ob Du eine Art Ablaufdatum für Dein Programm haben willst, also z.B. eine 30 Tage Testversion, und deshalb feststellen willst, ob der Benutzer das Datum zurückgestellt hat (warum sonst würde ein Benutzer das Datum verstellen wollen?), würde ich sagen: Vergiß es, mach Dir keine Gedanken hierüber.

Denn: Auch wenn einem Benutzer Dein Program so sehr gefällt, daß er die Zeit investiert herauszufinden, daß es mit zurückgestelltem Datum auch nach den 30 Tagen noch läuft, wird er dies bestimmt nicht lange machen. Das ist einfach zu unbequem, und da der Anreiz dies für das neue, tolle Programm zu tun mit der Zeit abnimmt, wird dann entweder das Programm gekauft, oder es wird nicht mehr verwendet.

Das ist natürlich nur meine Meinung 8) .

Holger
chrissivo
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 130

WIN XP, WIN 2000, WIN MCE, WIN 98
D5 Pers
BeitragVerfasst: Do 04.08.05 20:09 
Hallo,
ich denke, dass es, wie Holgerwa es schon sagte, es nicht möglich ist, zu überprüfen, ob sich die Tage ändern, allerdings weiß ich durch Ausrpo.. äh.. habe ich gehört, dass es bei NAV nicht möglich ist die Zeit zurück zu stellen und das Produkt länger zu kaufen. Ich könnte mir als Lösung dafür deshalb vorstellen, Datum und Laufzeit zu speichern und abzugleichen mit einer Liste, wann man das Programm benutzen darf. Durch ausgeklügeltes Zeitumstellen hat ein Nutzer dann tatsächlich die Möglichkeit das Programm von mir aus 30Tage á 24h zu nutzen. Und wenn du zur Laufzeit feststellst, dass in der Zeitspanne, wo dein Proggy ausgeführt wird sich die Zeitspanne mit der gespeicherten überschneidet, dann sperrst du den künftigen Betrieb ganz. :twisted:
Müsste man sicher noch ein bisschen ausklügeln die Idee, aber vielleicht ist es ein Anfang...


Viele Grüße

Chrissi

_________________
"... was ich noch zu sagen hätte dauert eine Zigarette, und ein letztes Glas im Steh'n..."
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Do 04.08.05 21:24 
Perfekte Lösung wirds nicht geben ! Ich habe z.B. das Datum vom Betriebssystem entkoppelt : Systemdatum wird vorgegeben und gespeichert in Datei. Es ging allerdings nur darum Rückdatierungen zu vermeiden. Verfallsdatum würde ich allerdings genauso behandeln. Dann eben zwei Dateien. Erstinstallation und aktuelles Datum.

_________________
Gruß
Hansa