Schreib Dir ein kleines Programm ohne sichtbares Fenster, reagiere auf die Message "WM_QUERYENDSESSION", setze die Lautstärke herab oder mach sonstwas. Im Messagehandler musst Du auf die Message reagieren (result auf TRUE/1) setzen.
Den Ansatz kenne ich und hab ihn auch schon bei meinen Recherchen gefunden. Zum Beispiel hier:
vor runterfahren ein programm starten Ich freue mich trotzdem über deinen Vorschlag.
Wie man sehen kann, ist mein Einleitungs-Posting so schon recht lang. (Zum Glück lesen Programmierer gerne
) Da wollte ich nicht auch noch alles überfluten mit "ich hab schon dies und das und das andere auch noch probiert". Zuerst hoffte ich, eine Diskusion in Gange zu kriegen. Dein Beitrag hilft dabei. *freu*
Allerdings befürchte ich bei diesem Ansatz, dass er einen Overhead, (
Wikipedia: evtl. entbehrlichen Mehraufwand, der nicht direkt Nutzen erzeugt) nach sich zieht, der sich bei dieser simplen Aufgabe (Lautstärke rückstellen beim Shutdown) nicht "rechnet". Zum Beispiel ist dabei nicht gewährleistet, dass so ein Programm ausgeführt wird, bevor der Abmeldesound ertönt. Oder Beispiel 2, könnten schon Dienste oder gar der Explorer beendet sein, so dass das Programm zum einen seine Funktion nicht ausführen kann, oder zum anderen das Runterfahren blockiert und der PC hängen bleibt. Usw.
Ich habe gehofft, das in dieser Diskussion auch die ein oder andere Information auftaucht, die solche ungewollten Seiteneffekte aufzeigt, denn ich bin nicht mit alle Abläufe beim Shutdown vertraut. Ich behalt die Lösung aber im Hinterkopf.
Das Problem lässt sich also darauf reduzieren, dass der Installer die Groupe Policy automatisch einrichten soll.
Hallo Michael, freue mich, nach langer Zeit wieder was von "alten Bekannten" zu hören.
War lange Zeit nicht hier.
Zum Thema: Du hast den Nagel auf den Kopf getroffen! Nach den schon erwähnten Recherchen habe ich den Eindruck, dass die quasi Windows-eigene Möglichkeit mit den Group Policies die sauberste Lösung ist; zumindest was das korrekte Ausführen (m)eines Programms und das anschliesende Runterfahren von Windows betrifft. Bei meinen Tests habe ich sogar problemlos mit einer Wait-Routine arbeiten können. Das heißt, das per Group Policies aufgerufene Test-Programm hatte ein Fenster und die Ausführung des Group Policy Scripts (und somit das Shutdown) wurde pausiert, bis ich das Fenster geschlossen habe. Es wurde zu eine Zeitpunkt ausgeführt, der
vor den Windows-Shutdown-Abläufen liegt: Abmeldesound wurde erst nach meinem Test-Programm abgespielt, und es wurden keine Dienste oder Programme beendet, bevor ich das Programm geschlossen habe (reproduzierbar).
Sorry, das war schon wieder lang. Deshalb kurz: Ja, das Problem lässt sich darauf reduzieren, dass der Installer die Groupe Policy automatisch einrichten soll. Damit wär ich zufrieden.
Das bin ich auch schon angegangen, hab auch (wahrscheinlich) alle relevanten Registry-Schlüssel rausgefunden. Dann habe ich aber abgebrochen, als mir die SID Kopfzerbrechen bereitete und ich nicht sicher war, ob alle benötigten MMC-Module dadurch geladen werden, usw. Das sah wieder nach einem Overhead aus, den ich nicht beurteilen konnte. Deshalb erst mal mit euch kurzschließen, was ihr so meint.
Guido.
Edit: Kleine Ergänzungen.