Ergebnis 1 bis 3 von 3

Thema: ACPI und das Windows API

  1. #1

    ACPI und das Windows API

    Hallo Leute,

    Hat jemand in dieser Richtung schon mal was unternommen? Ich suche eine Möglichkeit, in Windows die Reaktion auf ACPI Ereignisse wie "Powerknopf wurde gedrückt", "Laptop wird geschlossen", etc. per Programm an/abzuschalten. Dazu passend: kann man so auch die Tasten einiger Keyboards (Shutdown, Standby usw., es gibt welche die haben solche Tasten) deaktivieren?
    Das Ganze wird für eine Applikation gebraucht, die Windows in so eine Art Kioskmodus versetzen soll.

  2. #2
    Solche Sachen werden in der WinAPI ja alle per Message gesendet. Wenn du also diese Message abfängst und aus dem Stack entfernst, ohne sie an die DefWindowProc() weiterzuleiten, sollten solche Sachen keinen Effekt haben. Dadurch könnte man etwa Screensaver verhindern indem man die Message abfängt. Schau dir mal WM_SYSCOMMAND an, da gibt ein paar solcher Sachen. Leider nicht alle die, welche du genannt hast. Was den Rest betrifft, weiß ich auch nicht, wie das zu machen wäre. Aber irgendwie wird Windows auch an das Programm eine Message senden, dass der PC in den Standby Modus oder Shutdown will. Diese message müsstest du eben auswerten in der Windows-Callback Prozedur und einfach mit return 0; quitieren. Dann wird die DefWindowProc() nicht abgearbeitet, welche dann beim Shutdown etwa das Programm versuchen würde, zu beenden.

  3. #3
    AFAIK werden solche Messages an *alle* Fenster, Komponenten, etc. gesandt, die eine WndProc() haben. Das Problem hierbei: Verwerfe ich die Nachricht in der WndProc() meiner Anwendung, hat das absolut null Auswirkung auf andere Anwendungen die die Nachricht erhalten haben. (irgendwas muß den Shutdown ja auslösen)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •