hi,
vorneweg: es handelt sich hierbei um ein schönheits problem...
ich habe hier eine älter dll, die irgendwie schon immer benutzt wird,
keiner weis woher und es gibt auch keine quellen dazu...
ist soweit auch kein problem, denn sie läuft ohne probleme 24/7.
nur, diese dll kommt mit einem datum von >2000 nicht klar, warum auch
immer. also wenn ich sie init. und das datum aktuell (2007) ist, gibts einen
fehler.
workaround:
kurz bevor ich die dll lade, setzte ich das jahr auf 1999, dann nachdem sie geladen ist
zurück auf das aktuellen, wie gesagt nur das jahr, alles andere bleibt unberührt.
hat auch seit jahren ....

geklappt, aber ganz wohl bei der sache ist mir nicht.
denn wenn man sich beim laden des prog. das systemdatum ansieht dann, klar, sieht man es
für einen kurzen moment, also zurück dann wider vor aufs aktuelle.
naja ist bisher keinem aufgefallen, übler nachgeschmack bleibt.
ich habe das hier entdeckt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| function SetDateto1999:Boolean; var SetTM, GetTM: TSystemTime; begin
GetLocalTime(GetTM);
OrigM := GetTM.wMonth; OrigD := GetTM.wDay; OrigY := GetTM.wYear;
SetTM.wYear := 1999; SetTM.wMonth := 9; SetTM.wDay := 1; SetTM.wHour := GetTM.wHour; SetTM.wMinute := GetTM.wMinute; SetTM.wSecond := GetTM.wSecond; SetTM.wMilliSeconds := GetTm.wMilliseconds;
Result := SetLocalTime(SetTM); PostMessage(HWND_BROADCAST, WM_TIMECHANGE, 0, 0); end; |
so ähnl. sieht es auch im prg. aus, nur ohne das postmessage am schluss, da xp das automatisch !? ausführt.
nun zur frage:
geht es das ich quasi programm *intern das datum für einen moment zurücksetzte *ohne das das BS etwas davon
mitbekommt, aber die dll das schluck.
also dieses HWND_BROADCAST WM_TIMECHANGE unterdrücke? zumindest für einem moment?
cu
alice