Werbung

Wäre es nicht großartig, wenn Sie die Audioausgabe Ihres Computers automatisch stummschalten könnten, wenn Sie Ihren Kopfhörer ausstecken? Es würde verhindern, dass Ihre Mitbewohner in den frühen Morgenstunden versehentlich aufgeweckt werden oder Ihre Liebe zu Britney Spears fälschlicherweise in der Öffentlichkeit offenbart wird.

Natürlich können Sie Lautsprecher und Kopfhörer mit dem Volume Mixer von Fall zu Fall stumm schalten. (Weitere Informationen zum Anpassen des Sounds in Windows 10.) Aber ehrlich gesagt ist dies nicht erforderlich, wenn Sie es mit PowerShell automatisieren können.

So schalten Sie das Audio Ihres PCs automatisch stumm, wenn Sie die Kopfhörer entfernen, ähnlich wie bei Smartphones.

Öffnen Sie zunächst den Editor. Fügen Sie dann den folgenden Code in das leere Dokument ein:

[cmdletbinding ()] Param () # Hinzufügen von Definitionen für den Zugriff auf die Audio-API. Add-Type -TypeDefinition @ ' mit System. Laufzeit. InteropServices; [Guid ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType). InterfaceIsIUnknown)] Schnittstelle IAudioEndpointVolume { // f (), g (),... sind nicht verwendete COM-Methoden-Slots. Definieren Sie diese, wenn Sie sich interessieren. int f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (float fLevel, System. Guid pguidEventContext); int j (); int GetMasterVolumeLevelScalar (out float pfLevel); int k (); int l (); int m (); int n (); int SetMute ([MarshalAs (UnmanagedType). Bool)] bool bMute, System. Guid pguidEventContext); int GetMute (out bool pbMute); } [Guid ("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType (ComInterfaceType). InterfaceIsIUnknown)] Schnittstelle IMMDevice { int Aktivieren (siehe System. Guid id, int clsCtx, int activityParams, out IAudioEndpointVolume aev); } [Guid ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType). InterfaceIsIUnknown)] Schnittstelle IMMDeviceEnumerator { int f (); // Ungebraucht. int GetDefaultAudioEndpoint (int dataFlow, int role, out IMMDevice-Endpunkt); } [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] Klasse MMDeviceEnumeratorComObject {} öffentliche Klasse Audio { statisches IAudioEndpointVolume Vol () { var enumerator = new MMDeviceEnumeratorComObject () als IMMDeviceEnumerator; IMMDevice dev = null; Marschall. ThrowExceptionForHR (Enumerator. GetDefaultAudioEndpoint (/ * eRender * / 0, / * eMultimedia * / 1, out dev)); IAudioEndpointVolume epv = null; var epvid = typeof (IAudioEndpointVolume) .GUID; Marschall. ThrowExceptionForHR (dev. Activate (ref epvid, / * CLSCTX_ALL * / 23, 0, out epv)); return epv; } public static float Volume { get {float v = -1; Marschall. ThrowExceptionForHR (Vol (). GetMasterVolumeLevelScalar (out v)); return v;} setze {Marschall. ThrowExceptionForHR (Vol (). SetMasterVolumeLevelScalar (Wert, System. Guid. Leeren));} } public static bool Mute { get {bool stumm; Marschall. ThrowExceptionForHR (Vol (). GetMute (out mute)); stumm schalten; } setze {Marschall. ThrowExceptionForHR (Vol (). SetMute (Wert, System. Guid. Leeren)); } } } '@ -Verbose While ($ true) { # Bereinigen Sie alle Ereignisse in der aktuellen Sitzung, da sie sich in einer Endlosschleife befinden, um einen Neustart zu starten, wenn die Schleife beginnt. Get-Event | Remove-Event -ErrorAction SilentlyContinue #Registrieren des Ereignisses und Warten auf das Auslösen des Ereignisses. Register-WmiEvent -Class Win32_DeviceChangeEvent. Wait-Event -OutVariable Event | Out-Null $ EventType = $ Event.sourceargs.newevent | ` Sort-Object TIME_CREATED -Descending | ` Select-Object EventType -ExpandProperty EventType -First 1 # Zu behandelnde bedingte Logik, Wann der Computer mithilfe der Audio-API stummgeschaltet oder die Stummschaltung aufgehoben werden soll. If ($ EventType -eq 3) { [Audio]:: Mute = $ true. Write-Verbose "Muted [$ ((Get-Date) .tostring ())]" } elseif ($ EventType -eq 2 -und [Audio]:: Mute -eq $ true) { [Audio]:: Mute = $ false. Write-Verbose "UnMuted [$ ((Get-Date) .tostring ())]" } }
instagram viewer

Jetzt müssen Sie die Datei im PS1-Format speichern. Wenn Sie das Dialogfeld "Datei speichern" anzeigen, wählen Sie Alle Dateien aus dem Dropdown-Menü und rufen Sie die Datei auf AutoMute.ps1. Der Name der Datei selbst ist nicht wichtig. Wählen Sie einfach etwas aus, an das Sie sich leicht erinnern können.

Um das Skript zu aktivieren, klicken Sie mit der rechten Maustaste auf die neu erstellte Datei und wählen Sie Lauf. Das Skript bleibt aktiv, bis Sie Ihren Computer ausschalten.

Dies ist nur eine von vielen Möglichkeiten PowerShell kann Ihre Produktivität steigern Steigern Sie Ihre Produktivität mit Windows PowerShell-SkriptenWas wäre, wenn Sie die Produktivität von Linux auf Windows übertragen könnten? Die meisten Linux-Distributionen werden mit der leistungsstarken Bash-Shell geliefert. PowerShell ist ein ebenso leistungsfähiges Terminal für Windows. Weiterlesen . Da sind viele PowerShell-Cmdlets, die Ihre Windows-Erfahrung verbessern Powershell-Cmdlets, die Ihre Windows-Administratorfähigkeiten verbessernPowershell ist zu gleichen Teilen ein Befehlszeilen-Tool und eine Skriptsprache. Sie können Ihren Computer über dieselben Befehle automatisieren, mit denen Sie ihn verwalten. Weiterlesen .

Bildnachweis: peus / Depositphotos

Dan ist ein britischer Expat, der in Mexiko lebt. Er ist der Managing Editor für MUOs Schwestersite Blocks Decoded. Zu verschiedenen Zeiten war er Social Editor, Creative Editor und Finance Editor für MUO. Sie finden ihn jedes Jahr auf der CES in Las Vegas auf der Ausstellungsfläche (PR-Leute, erreichen Sie!), Und er macht viele Websites hinter den Kulissen…