Entwickler-Ecke
Windows API - windows shutdown mitbekommen
chrisbie - So 02.03.08 13:53
Titel: windows shutdown mitbekommen
ich will für ein programm den windwosshutdown registrieren und protkollieren. allerdings klappt das leider nicht so, wie ich mir das vorstelle.
nach stöbern im forum bin ich auf folgende lösung gestoßen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure Tform1.WMPowerBrodacast(var m:TMessage); begin if (Msg.WParam = PBT_APMSUSPEND) then [b][i] begin assignFile(logfile, 'zeit.log'); append (logfile); write (logfile, datetostr(date) +' um '+timetostr(now)+' Comuter Ausgeschaltet,'); writeln (logfile, ' laufzeit: '+ timetostr(laufzeit)+' Stunden'); writeln (logfile); closefile(logfile); end; end; |
habe ich was vergessen?
bin ein relativer delphi leie.
hoffe auf hilfe, danke
Moderiert von
Narses: Fragestatus von gelöst auf offen gesetzt.
F34r0fTh3D4rk - So 02.03.08 14:23
wie wäre es mit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure Tform1.WMPowerBroadcast(var m:TMessage); begin if (Msg.WParam = PBT_APMSUSPEND) then begin assignFile(logfile, 'zeit.log'); append (logfile); write (logfile, datetostr(date) +' um '+timetostr(now)+' Comuter Ausgeschaltet,'); writeln (logfile, ' laufzeit: '+ timetostr(laufzeit)+' Stunden'); writeln (logfile); closefile(logfile); end; end; |
mfg
Gausi - So 02.03.08 14:36
Ich glaube, du hast die ganz falsche Message. Beim Beenden gibts WM_QUERYENDSESSION und WM_ENDSESSION. Darauf musst du reagieren. Die Message WM_POWERBROADCAST gibts beim Schlafengehen/aufwachen, also Ruhemodus etc.
Narses - So 02.03.08 15:08
Moin!
Gausi hat folgendes geschrieben: |
Beim Beenden gibts WM_QUERYENDSESSION und WM_ENDSESSION. |
Hm :gruebel: die gibt´s doch aber beim An-/Abmelden, das hat ja nix mit dem Runterfahren zu tun. :nixweiss:
cu
Narses
Narses - So 02.03.08 15:23
Moin!
Gausi hat folgendes geschrieben: |
Bei lParam=0 wird das System wird runtergefahren |
Jau, stimmt ja. ;)
Allerdings kriegen nur Toplevel-Windows die Nachricht. :idea:
cu
Narses
chrisbie - Do 06.03.08 19:01
sorry aber warscheinlich bin ich einfach nur zu blöd für so was.
ich bekomme das net hin. noch mal ganz langsam für dumme.
ich bin jetzt so weit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Timer1Timer(Sender: TObject); procedure WMPowerBroadcast(var msg:TMessage);
procedure Tform1.WMPowerBroadcast(var msg:TMessage); begin if Msg.WParam = PBT_APMSUSPEND then begin assignFile(logfile, 'zeit.log'); append (logfile); write (logfile, datetostr(date) +' um '+timetostr(now)+' Comuter Ausgeschaltet,'); writeln (logfile, ' laufzeit: '+ timetostr(laufzeit)+' Stunden'); writeln (logfile); closefile(logfile); end; end; |
habe ich irgendwo was vergessen?
muss ich irgendwo noch was definieren?
Narses - Do 06.03.08 20:46
Moin!
chrisbie hat folgendes geschrieben: |
habe ich irgendwo was vergessen? |
Ähm, ja? :? Zum Beispiel die letzten Beiträge zu lesen, insbesondere den von
Gausi? :nixweiss:
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!