Abstrakt: Wie kann man ein Programm beim Abmelden, Runterfahren, Neustarten von Windows ausführen? (Also sowas wie das Gegenstück zum Autostart-Ordner.)
Konkret:
Ich höre z. B. Musik am PC, oder schaue mir ein Video an, und drehe die Lautstärke hoch. Ist der Film vorbei, die Musik aus, vergesse ich regelmäßig (altersbedingt?), dass die Lautstärke noch hoch ist. Was jetzt kommt ist klar: Beim Runterfahren kommt man in den Genuss des Windows-Abmeldesounds in ungeanter Lautstärke, und im Worst-Case noch gratis einen Herz-Kasper dazu.
Und wie heißt es so schön in den Verkaufssendungen: "Und das ist längst noch nicht alles!" Denn hat man bei Runterfahren mit einem recht kurzen Sound noch Glück gehabt, gibts den nächsten Herzschrittmacher-Kill beim morgentlichen Hochfahren. Bei mir kommt da nämlich nicht nur der XP-Anmedlesound (ja, ich benutz noch XP
), sondern es startet gerade dann das tägliche Backup, das mit Sound eingeläutet wird, ebenso meldet sich lautstark mein Reminder für Termine und mein freundliches eMail-Programm schreit mir sanft "Sie haben Post!" um die Ohren.
Problem:
A) Es soll beim Beenden von Windows (Abmelden, Runterfahren, usw.) ein Programm ausgeführt werden, das die Lautstärke (Master-Volume) auf einen gewünschten Wert runterstellt (NICHT Mute, also größer 0 ).
B) Das Programm soll möglichst mit einer Installations-Routine installiert werden können, z. B. Doppelklick -> ein paarmal "Weiter" -> und "Fertig".
(Kurzer Begründung: Zu meinen Sicherheitsvorkehrungen gehört das Restaurieren des Systems (per Ghost-Image) alle 4 - 6 Wochen, und die hier gesuchte Lösung soll erst dann in das Image, wenn ich es ausgiebig getestet habe.)
Lösung bisher:
Das einfachste war, ein (fertiges) Programm zu finden, mit dem sich die Lautstärke auf einen gewünschten Wert einstellen lässt: Das winzige Command Line Tool
NirCmd.
Dann wurde es schwierig: Ein Programm finden, das andere Programme ausführt, wenn der PC runtergefahren wird. Es gibt zwar ein paar wenige Programme, die sind aber nicht wirklich zu gebrauchen. Entweder kommerziell, oder mit Nag-Ware.
Group Policies: Ich habe mehrere Tage recherchiert (natürlich nicht 24 Stds) und alle Lösungen führten immer wieder zu den Windows Group Policies. Das habe ich umgesetzt, und es funktioniert in soweit, dass das Problem A (siehe oben) gelöst wird. Aber bei Problem B (einfache Installierbarkeit) bin ich gescheitert.
Gesuchte Hilfe:
Wie kann ich eine Lösung programmieren, die mir entweder die Einstellungen der Group Policies vornimmt (bin gescheitert an der Win SID u. ä.), oder eine komplette Delphi-Lösung ohne Group Policies, mit der ich NirCmd beim Beenden von Windows aufrufen kann?
Guido.
Edit: Bezug zur Themen-Überschrift eingefügt.