![]() |
Re: PowerButton-Event von Windows abfangen und auswerten
Wenn die Powertaste abgestellt wurde, dann wird doch auch keine WM_POWERBROADCAST-Botschaft verschickt, da dann ja nichts passiert.
WM_POWERBROADCAST ist nur eine Reaktion auf das Drücken des Tasters oder auf irgendwas, welches den PC z.B. runterfahren will ... diese Nachricht hat also nix mit der Taste selber zu tun. Das drücken des Gehäuse-Power-Knöpfchens dürfte eher irgendeinen Interupt auslösen und an den kommt man wohl nur über einen Treiber? :gruebel: |
Re: PowerButton-Event von Windows abfangen und auswerten
...oder man fragt den Embedded Controller direkt ab - das Byte ist aber bei jedem PC/Notebook an einer anderen Stelle, denn es gibt keine Normung.
|
Re: PowerButton-Event von Windows abfangen und auswerten
Zitat:
|
Re: PowerButton-Event von Windows abfangen und auswerten
Zitat:
Darauf habe ich einen Test-Button der die Message sendet. Darauf reagiert meine Prozedur
Delphi-Quellcode:
wenn ich den Test-Button im Programm drücke, aber nicht wenn ich den PowerButton drücke und auch nicht, wenn ich den "Ausschalten"-Button drücke, der auf Start > Computer ausschalten... erscheint (wie weiter oben jmd schrieb).
procedure WMPowerBroadcast(var Msg:TWMPower);
message WM_POWERBROADCAST; procedure TForm1.WMPowerBroadcast(var Msg:TWMPower); begin Msg.Result:=BROADCAST_QUERY_DENY; ShowMessage('procedure TForm1.WMPowerBroadcast(var Msg:TWMPower);'); end; Eine andere Empfangs-Prozedur, die ich in meiner Nachforschung entdeckt habe ist:
Delphi-Quellcode:
Diese wird beim manuellen senden der Message gar nicht erst aufgerufen. Verwende ich WndProc falsch oder überschreibe ich sie nicht richtig?
procedure wndproc(var msg:Tmessage);
begin inherited; if msg.msg = WM_POWERBROADCAST then begin ShowMessage('procedure wndproc(var msg:Tmessage);'); msg.result:=BROADCAST_QUER_DENY; end; end; Zitat:
Wie weiter oben in diesem Post genauer beschrieben, reagiert das Programm aber auch nicht, wenn ich auf "Ausschalten" gehen und somit, laut deiner Aussage, das WM_POWERBROADCAST-Event auslöse. Zitat:
Zitat:
Es gibt eine Message, laut meinen Recherchen-Quellen ist es WM_POWERBROADCAST, was auch schon in einem älteren Thread im Forum (erfolgreich?) in einem ähnlichen Zusammenhang verwendet wurde. edit: Dieser Thread ist es: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:06 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