Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Auf Ein/Aus-Schalter reagieren (https://www.delphipraxis.net/92843-auf-ein-aus-schalter-reagieren.html)

Cyberbob 27. Mai 2007 11:16


Auf Ein/Aus-Schalter reagieren
 
Moin allerseits,

ich habe ein kleines Problem, bei dem ich hoffe das ihr mir weiterhelfen könnt. Ich hab unter Vista und auf XP den Taster für das Ein und Ausschalten des Laptop funktionslos eingestellt (In den Energieoptionen). Wenn ich ihn also bei laufendem system drücke, passiert gar nichts.
Nun möchte ich das Drücken dieses Tasters abfangen, um eine Dialogbox anzeigen zu lassen, welche mich fragt, ob ich wirklich herunterfahren will!
Gibt es da einen möglichkeit oder gar ein fertiges Programm?

Danke im Vorraus,
Christian

DP-Maintenance 27. Mai 2007 11:43

DP-Maintenance
 
Dieses Thema wurde von "Jelly" von "Programmieren allgemein" nach "Windows API / MS.NET Framework API" verschoben.

himitsu 27. Mai 2007 14:47

Re: Auf Ein/Aus-Schalter reagieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Cyberbob
ich habe ein kleines Problem, bei dem ich hoffe das ihr mir weiterhelfen könnt.

mal sehn :angel:

Zitat:

Zitat von Cyberbob
Ich hab den Taster für das Ein und Ausschalten des Laptop funktionslos eingestellt (In den Energieoptionen). Wenn ich ihn also bei laufendem system drücke, passiert gar nichts.

Natürlich nicht, wenn du das abschaltest. :roll:

Zitat:

Zitat von Cyberbob
Nun möchte ich das Drücken dieses Tasters abfangen, um eine Dialogbox anzeigen zu lassen, welche mich fragt, ob ich wirklich herunterfahren will!
Gibt es da einen möglichkeit oder gar ein fertiges Programm?

Ja, Windows.

Da wo du's abgestllt hast, sollte es auch eine Option dafür geben. :zwinker:
(mitlere Option)

Cyberbob 27. Mai 2007 15:02

Re: Auf Ein/Aus-Schalter reagieren
 
Nein, genau das möchte ich nicht. Bei uns in der Uni gibts so ein paar Kaoten, die immer auf den Knopf drücken und fährt mein Computer in den Ruhezustand. Das nervt.
Nun möchte ich ei Programm haben, dass mir erst eine dialogbox anzeigt, in der ich auswählen kann, ob er wirklich runterfahren soll.
Und unter Vista kann man das Herunterfahren ja nicht mehr verhinder, wenn der auftrag einmal gegeben ist. Also muss ich wohl auf den Taster reagieren!

Gruß,
Christian

himitsu 27. Mai 2007 21:13

Re: Auf Ein/Aus-Schalter reagieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Aber "Zur Vorgangsauswahl auffordern" ruft doch den passenden Windowsdialog (XP siehe Bild) auf. :stupid:

Und da hast du doch dann deine Abfrage?


Ansonsten mußt du wohl hoffen, daß ein entsprechendes Tastaturevent ausgelößt wird,
welches du z.B. über 'nen Tastaturhook abfangen kannst. :gruebel:

Cyberbob 27. Mai 2007 22:27

Re: Auf Ein/Aus-Schalter reagieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mir würde es genügen, wenn er mir beim Drücken der Taste diesem Dialog anzeigt, da hab ich immer noch ne möglichkeit, das ganze aufzuhalten. Nur finde ich in den Einstalleungen nichts, wo ich das einstellen kann. Der fährt sofort runter!

[EDIT]Ich finde, keine Möglichkeit dazu in den Energieoptionen[/EDIT]

himitsu 27. Mai 2007 23:59

Re: Auf Ein/Aus-Schalter reagieren
 
da ham die doch nich schonwieder was ausgebaut :shock:

na dann bleibt wohl doch nur noch der Tastaturhook.

und hast du's schonmal über WM_POWERBROADCAST versucht?


z.B. etwa so:
Delphi-Quellcode:
Type TMainForm = Class(TForm)
    ...
  Private
    Procedure WMPowerBroadcast(Var Msg: TMessage); Message WM_POWERBROADCAST;
  End;


Procedure TMainForm.WMPowerBroadcast(Var Msg: TMessage);
  Begin
    If Msg.WParam in [PBT_APMQUERYSUSPEND, PBT_APMQUERYSTANDBY] Then
      Msg.Result := BROADCAST_QUERY_DENY
    Else Inherited;
  End;
ach, und dat hab'sch grad über Google gefunden: :stupid:
http://www.delphipraxis.net/internal...ct.php?t=17958

Cyberbob 28. Mai 2007 00:47

Re: Auf Ein/Aus-Schalter reagieren
 
Zitat:

Zitat von himitsu
und hast du's schonmal über WM_POWERBROADCAST versucht?

Welche Unit muss ich einbinden, damit er PBT_APMQUERYSUSPEND und PBT_APMQUERYSTANDBY erkennt. Bei mir sagt Delphi "Unbekannter Bezeichner"!

Zitat:

Zitat von himitsu
ach, und dat hab'sch grad über Google gefunden: :stupid:

Den Code hatte ich auch schon, nur Funktioniert er nicht! Er löst das Erreignis nicht aus, wenn ich auf den Knopf drücke.

himitsu 28. Mai 2007 01:17

Re: Auf Ein/Aus-Schalter reagieren
 
Zitat:

Welche Unit muss ich einbinden, ... Bei mir sagt Delphi "Unbekannter Bezeichner"!
entweder selber definieren ... siehe MSDN-Library durchsuchenWM_POWERBROADCAST und PSDK,
oder mal sehn ob es in CodeSammlungen wie z.B. den JEDIs schon definiert wurde.

Cyberbob 28. Mai 2007 01:51

Re: Auf Ein/Aus-Schalter reagieren
 
Ok, hab den Code zum Laufen bekommen, der reagiert aber leider auch nicht auf den Knopfdruck!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz