Win32 Shutdown-Dialog abfangen
Übersicht

![]() |
d-bugBetreff: Win32 Shutdown-Dialog abfangen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo, liebe Gemeinde!
Ich dachte ich frag mich mal hier durch, ob vielleicht einer von euch eine Möglichkeit bei Windows die vom Ausschalten-Button bzw. Ausloggen-Butten im Startmenü ausgelösten Event abzufangen. Nach stundenlangem suchen auf msdn hab ich dann immerhin einen Event gefunden, WM_QUERYENDSESSION . Natürlich war es dumm von mir, den benutzen zu wollen. Der wird nämlich erst vom Shutdown-Dialog ausgelöst, also dann wenn es schon zu spät ist. Wäre natürlich zu schön gewesen einfach auf den Event WM_QUERYENDSESSION mit False zu antworten und stattdessen sein eigenes Programm zu starten. Ich mache damit keinen Unfug und will auch nicht irgendwelchen bösartigen Mist damit auslösen. Es geht dabei um ein kleinen OSX-Klon namens ChaosShut. Ich bekam öfters mal die Anfrage, ob man dass den nicht direkt vom Startmenü aufrufen könne. Gestern hab ich dann ein Programm gefunden, dass genau dieses macht. Nun stell ich mir die Frage, wie denn sowas gehen kann. Es nennt sich sShutdown und leitet den Shutdown-Dialog auf andere Programme um. Unter anderem auch auf ChaosShut. (Das macht mich sogar ein bisschen Stolz). Leider hängt es sich gnadenlos auf. cheers |
||
![]() |
Arrangemonk |
![]() Antworten mit Zitat ![]() |
---|---|---|
isses net einfach shutdown _a oder shutdown -a
also consolenbefehl (wie beim blast virus^^) nee, geht anders habs gefunden Zitat: G:\>shutdown /? Syntax: shutdown [-l | -s | -r | -a] [-f] [-m \\Computer] [-t xx] [-c "Kommentar"] [-d up:xx:yy] Keine Argumente Zeigt diese Meldung an (wie -?). -i Zeigt eine grafische Benutzeroberfläche an (muss die erste Option sein). -l Abmelden (kann nicht mit der Option -m verwendet werden). -s Fährt den Computer herunter. -r Fährt den Computer herunter und startet ihn neu. -a Bricht das Herunterfahren des Systems ab. -m \\Computer Remotecomputer zum Herunterfahren/Neustarten/Abbrechen. -t xx Zeitlimit für das Herunterfahren, in xx Sekunden. -c "Kommentar" Kommentar für das Herunterfahren (maximal 127 Zeichen). -f Erzwingt das Schließen ausgeführter Anwendungen ohne Warnung. -d [u][p] ![]() u = Benutzercode p = Code für geplantes Herunterfahren xx = Hauptgrund (positive ganze Zahl kleiner als 256) yy = Weiterer Grund (positive ganze Zahl kleiner als 65536) |
||
ingeneur |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicht ganz, denn um "shutdown.exe -a" auszuführen muss ich ja erstmal herausfinden ob das System gerade heruntergefahren wird. Das ist nicht ganz das was ich brauche und kann ich bereits mit WM_QUERYENDSESSION eleganter abfragen. Abbrechen kann ich den Shutdown-Prozess auch bereits.
Ich muss aber nun mal wissen, wann im Startmenü der Ausschalt-Button gedrückt wurde. Ich möchte sozusagen zwischen dem Drücken und dem anschließenden Dialog eingreifen und meinen eigenen Dialog starten. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Function Hooking wär doch in dem Falle nötig oder? Du müsstest den zugehörigen Funktionsaufruf abfangen. Obwohl ich net weiss ob das überhaupt möglich ist, denn das Menü, wie auch das "Admin Menü" das unter 2K und XP Pro kommen bei CTRL-ALT-DEL legen alle anderen Dinge eigentlich auf Eis ... | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nach ein paar zusätzlichen Recherchen übers Function-Hooking hab ich zumindest einen Ansatz heraus finden können.
Demnach müsste ich ExitWindowsEx sozusagen in eine eigene Funktion umleiten... Jesses, das ist starker Tobak für meine bescheidenen API-Kenntnisse und wird hiermit amtlich zu den Akten gelegt. Wäre ja auch zu schön gewesen, wenn es mal was einfaches gegeben hätte. Danke Dreamora cheers |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group