Wie schalte ich den Ton ab, wenn das Display ausgeschaltet wird?

Wie schalte ich den Ton ab, wenn das Display ausgeschaltet wird?

Ich möchte den Ton ausschalten (Windows 10), wenn der Monitor ausgeschaltet wird. Ich habe derzeit Energieeinstellungen, die den Monitor nach 15 Minuten ausschalten. Ich möchte, dass der Ton dann auch ausgeschaltet wird.

Ich bin nicht sicher, ob es dafür eine integrierte Windows-Methode gibt, aber wenn es dafür ein externes Tool gibt, wäre das auch hilfreich.

Bearbeiten: Das potenzielle Duplikat ansprechen – nircmd allein bietet keine Lösung. Es ist nur eine Methode, den Ton auszuschalten, wenn ich einen Weg finde, ihn nach 15 Minuten Inaktivität auszulösen und ihn bei einer Aktion wieder einzuschalten, wie beispielsweise bei den Energieeinstellungen des Monitors. Der Taskplaner scheint keinen Auslöser zu haben, der auf diese Weise als Timer fungieren kann.

Antwort1

Okay, es war also eine bestimmte geräuscherzeugende Anwendung, die ich stoppen wollte, wenn das System in den Leerlauf ging (und der Monitor ausgeschaltet wurde), aber ich wollte nicht, dass das System schläft. Mir wurde klar, dass es mir egal war, ob die Anwendung beendet wurde, also schrieb ich einfach ein Einzeiler-Skript, um sie zu beenden, und stellte es für den Leerlauf-Trigger im Taskplaner ein. Es ist nicht nötig, das Volume speziell zu beenden oder herauszufinden, wie man eine Rückkehr aus dem Leerlauf erkennt und das Volume wiederherstellt.

Komischerweise funktionierte taskkill /im nicht, also musste ich Folgendes verwenden:

wmic process where name="application.exe" call terminate

Antwort2

Öffnen Sie die Systemsteuerung und suchen Sie nach „Sound“ (oder klicken Sie einfach auf „Start“ und suchen Sie nach „Systemsounds ändern“). Suchen Sie unter der Registerkarte „Sound“ in der Liste „Programmereignisse“ nach „Geräteverbindung“ und „Gerätetrennung“ und wählen Sie im Dropdownmenü darunter „(Keine)“ aus.

Beachten Sie, dass dadurch auch die Ausgabe eines Tons durch Windows verhindert wird, wenn Sie Hardware wie USB, Maus usw. anschließen oder trennen.

Antwort3

Ich denke, das geht relativ einfach mitAutohotkey.

Fügen Sie mit dem Taskplaner eine Aufgabe mit Programm hinzu: C:\path\to\autohotkey.exeParameter: "C:\...path\to\script.ahk"zur Ausführung im Leerlauf unter Ihrem Konto (nur wenn der Benutzer angemeldet ist,deaktivieren [ ] Stoppen, wenn der Computer nicht mehr im Leerlauf ist, das Skript wird die Stummschaltung aufgehoben und von selbst beendet):

script.ahk:

#NoEnv

SoundGet manually_muted,,MUTE
If (manually_muted = "Off") {
    currently_idle := A_TimeIdle
    SoundSet 1,,MUTE
    Loop
    {
        Sleep 1000
    } Until (A_TimeIdle < currently_idle)
    SoundSet 0,,MUTE
}
ExitApp

Verwenden Sie ohne Taskplaner das folgende Skript (führen Sie es einfach aus, es bleibt resident und verwendet etwa 4 MB RAM):

#NoEnv
#NoTrayIcon
#Persistent
#SingleInstance force

TimeIdleToMute_ms := 15 * 60 * 1000 ; timeout in milliseconds

SetTimer MuteUntilIdleEnds, % TimeIdleToMute_ms

Exit

MuteUntilIdleEnds() {
    global TimeIdleToMute_ms
    static idlemuted := 0
    
    If (!idlemuted && A_TimeIdle > TimeIdleToMute_ms) {
        SoundGet manually_muted,,MUTE
        If (manually_muted = "Off") {
            idlemuted := A_TimeIdle
            SoundSet 1,,MUTE
            Loop
            {
                Sleep 1000 ; ms
            } Until (A_TimeIdle < idlemuted)
            SoundSet 0,,MUTE
            idlemuted := 0
        }
    }
}

Beide Skripte könnten neu geschrieben werden, um auf Windows-Meldungen zu reagieren, statt in einer Leerlaufschleife zu laufen, aber selbst jetzt ist der Ressourcenverbrauch vernachlässigbar.

Das zweite Skript hat möglicherweise Probleme, die Aktivität von Apps zu erkennen, die mit Administratorrechten ausgeführt werden, wenn es ohne Administratorrechte ausgeführt wird (es wird nach dem Timeout stummgeschaltet, wenn sie fokussiert sind, obwohl der Benutzer mit ihnen aktiv ist). Wenn Sie jedoch gelegentlich den Fokus auf Nicht-Administratorprogramme ändern, bis das Timeout eintritt, reicht es aus, den Timer zurückzusetzen. Außerdem wird die Stummschaltung beendet, wenn Sie zu einem Nicht-Administratorprogramm wechseln, da das Skript die Aktivität erkennt.

Beide Skripte sind geschrieben und schnell auf die Antwort getestet. Es können Fehler vorhanden sein. Melden Sie diese und seien Sie vorsichtig :)

PS SE, wo ist die Syntaxhervorhebung!?

verwandte Informationen