Entwickler-Ecke

Windows API - ERmitteln der Zeit einer Datei im Druckspooler


lroth - Do 16.07.09 22:49
Titel: ERmitteln der Zeit einer Datei im Druckspooler
Hallo,
ich möchte aus Dateien die aktuell im Druckspooler stehen die Zeit auslesen, zu der sie in den Spooler gestellt wurden. Funktioniert vom Prinzip, die Zeit die ich dabei aber erhalte weicht immer 2 Std von der wirklichen Zeit auf meinem Rechner ab. Wie kann ich das korrekt ermitteln?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
   aJobs : Array[0..5000of JOB_INFO_2;
   StatusLog:String;
   //...

      SetJob(hPrinter, aJobs[i].JobId, 00, JOB_CONTROL_CANCEL);

      //Hier liegt das Problem: !!!!!!!!!!!!!!!!!!!!!!!!!!!!
      StatusLog := DateToStr(SystemTimeToDateTime(aJobs[i].Submitted)) + ' - '+
                   TimeToStr(SystemTimeToDateTime(aJobs[i].Submitted)) + ' - ' +
                   StrPas(aJobs[i].pDocument) + ' - '+ IntToStr(aJobs[i].Size);


BenBE - Fr 17.07.09 07:35

Schau mal, ob Du irgendwas bzgl. Zeitzone rausbekommst. Ich denk mal, die angezeigte Zeit wird UTC sein, dein System wird aber auf MESZ laufen ...


ffgorcky - So 19.07.09 08:14

Also da musste ich erst mal nach suchen, was denn nun genau UTC und MESZ sind - und habe hier die Antwort gefunden:
Zeitumstellung bei Uhrzeit.org [http://www.uhrzeit.org/zeitumstellung.html]


jaenicke - So 19.07.09 08:22

Das geht mit GetTimeZoneInformation:
http://msdn.microsoft.com/en-us/library/ms724421.aspx
Hier siehst du wie das geht:
http://www.delphipraxis.net/topic7326.html


lroth - So 19.07.09 08:53

Danke allen, das hat geholfen !!!