Jak automatycznie wyciszyć dźwięk po odłączeniu słuchawek w systemie Windows 10?

Jak automatycznie wyciszyć dźwięk po odłączeniu słuchawek w systemie Windows 10?

Windows 10 może przechowywać oddzielne profile audio dla różnych urządzeń audio. Dla każdego podłączonego urządzenia audio można ustawić inny poziom głośności, a po podłączeniu urządzenia głośność dostosuje się automatycznie. Oczywiście nikt nie utrzymuje wyciszenia urządzenia audio przez cały czas. Zwiększają lub zmniejszają głośność, ale nikt nie wycisza urządzenia audio.

Jeśli używasz słuchawek z pulpitem i często musisz je odłączać, możesz użyć małego skryptu PowerShell, który automatycznie wyciszy dźwięk po odłączeniu słuchawek.

To jest coś, co robią telefony komórkowe, tzn. po odłączeniu słuchawek muzyka zatrzymuje się automatycznie. Logika za tym polega na tym, że albo skończyłeś słuchać muzyki, albo przypadkowo usunąłeś słuchawki i potrzebujesz szybkiego sposobu na ich wyłączenie. Scenariusz został w zasadzie napisany na tej samej zasadzie przez  Prateeka Singha z GEEKEEFY .

Jak automatycznie wyciszyć dźwięk po odłączeniu słuchawek w systemie Windows 10?

Automatycznie wycisz dźwięk

Otwórz Notatnik i wklej następujące;

[cmdletbinding()] Param() #Dodawanie definicji dostępu do interfejsu Audio API Add-Type -TypeDefinition @' przy użyciu System.Runtime.InteropServices; [Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface IAudioEndpointVolume { // f(), g(), ... są nieużywanymi gniazdami metod COM. Zdefiniuj je, jeśli Ci zależy int f(); int g(); int h(); int i(); int SetMasterVolumeLevelScalar(zmienna 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)] interface IMMDevice { int Activate(ref System.Guid id, int clsCtx, int aktywacjaParams, out IAudioEndpointVolume aev); } [Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface IMMDeviceEnumerator { int f(); // Nieużywany int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMDevice endpoint); } [ComImport, Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")] class MMDeviceEnumeratorComObject { } public class Audio { static IAudioEndpointVolume Vol() { var enumerator = new MMDeviceEnumeratorComObject() jako IMMDeviceEnumerator; IMMDevice dev = null; Marshal.ThrowExceptionForHR(enumerator.GetDefaultAudioEndpoint(/*eRender*/ 0, /*eMultimedia*/1, out dev)); IAudioEndpointVolume epv = null; var epvid = typeof(IAudioEndpointVolume).GUID; Marshal.ThrowExceptionForHR(dev.Activate(ref epvid, /*CLSCTX_ALL*/ 23, 0, out epv)); powrót epv; } public static float Volume { get {float v = -1; Marshal.ThrowExceptionForHR(Vol().GetMasterVolumeLevelScalar(out v)); return v;} set {Marshal.ThrowExceptionForHR(Vol().SetMasterVolumeLevelScalar(value, System.Guid.Empty));} } public static bool Mute { get { bool mute; Marshal.ThrowExceptionForHR(Vol().GetMute(wyciszenie)); zwróć wyciszenie; } set { Marshal.ThrowExceptionForHR(Vol().SetMute(value, System.Guid.Empty)); } } } '@ -Verbose While($true) { #Wyczyść wszystkie zdarzenia w bieżącej sesji, ponieważ znajduje się ona w nieskończonej pętli, aby rozpocząć od nowa po rozpoczęciu pętli Get-Event | Remove-Event -ErrorAction SilentlyContinue #Rejestrowanie zdarzenia i oczekiwanie na wyzwolenie zdarzenia Register-WmiEvent -Class Win32_DeviceChangeEvent Wait-Event -OutVariable Event |Out-Null $EventType = $Event.sourceargs. nowe wydarzenie | ` Sort-Object TIME_CREATED - Malejąco | ` Select-Object EventType -ExpandProperty EventType -First 1 #Warunkowa logika do obsłużenia, Kiedy wyciszyć/wyłączyć wyciszenie komputera za pomocą interfejsu API audio If($EventType -eq 3) { [Audio]::Mute = $true Write-Verbose "Wyciszony [$((Get-Date).tostring()]" } elseif($EventType -eq 2 -and [Audio]::Mute -eq $true) { [Audio]::Mute = $false Write-Verbose " Bez wyciszenia [$((Get-Date).tostring()]]" } }

Zapisz go z rozszerzeniem pliku PS1. Upewnij się, że wybrałeś „Wszystkie pliki” z listy rozwijanej typu pliku. Nadaj plikowi nazwę, która od razu powie Ci, co robi. Zapisz go w miejscu, w którym prawdopodobnie nie usuniesz go przypadkowo, ale także tam, gdzie możesz go łatwo znaleźć, jeśli zajdzie taka potrzeba.

Uruchamianie skryptu

PowerShell nie może po prostu automatycznie uruchomić skryptu. Istnieje wbudowany środek bezpieczeństwa, który temu zapobiega, ale można to obejść. Mamy szczegółowy artykuł o tym, jak możesz to zrobić. Postępuj zgodnie z instrukcjami, aby automatycznie uruchomić właśnie utworzony skrypt PowerShell i użyj zaplanowanego zadania, aby uruchomić skrypt przy każdym uruchomieniu komputera.

Alternatywnie możesz ręcznie uruchomić skrypt podczas uruchamiania systemu. Używam go niecałe 30 minut i nie wiem, jak wcześniej bez niego żyłem.


Jak sprawić, by Python i Pip działały w systemie Windows

Jak sprawić, by Python i Pip działały w systemie Windows

Chcesz, aby interpreter języka Python działał na komputerze z systemem Windows 10 lub 11? Dowiedz się, jak sprawić, by Python działał w systemie Windows, korzystając z tego prostego samouczka.

Jak blokować reklamy w Chrome bez rozszerzenia

Jak blokować reklamy w Chrome bez rozszerzenia

Google zmienia przeglądarkę Chrome, aby utrudnić blokowanie reklam w systemie Windows. Dzięki Adguard możesz obejść te zmiany.

Czy bazy przetrwania i domy ocalałych to to samo w Minecrafcie

Czy bazy przetrwania i domy ocalałych to to samo w Minecrafcie

Kiedy zaczynasz grać w Minecrafta lub zaczynasz nowy świat w Minecrafcie, jedną z pierwszych rzeczy, które zrobisz, będzie zbudowanie małego domu. Nie będzie

Zdalny dostęp do systemu Windows Server za pomocą AnyDesk

Zdalny dostęp do systemu Windows Server za pomocą AnyDesk

Szukasz łatwego sposobu łączenia się z systemem Windows Server przez Internet lub sieć domową? Dowiedz się, jak połączyć się z Anydesk.

Jak wejść do systemu BIOS w systemie Windows 11: 3 proste metody

Jak wejść do systemu BIOS w systemie Windows 11: 3 proste metody

Potrzebujesz pomocy w uzyskaniu dostępu do systemu BIOS komputera z systemem Windows 11? Znajdziesz tutaj trzy różne metody, aby to zrobić na komputerze

Jak podłączyć Airpods w systemie Windows 11

Jak podłączyć Airpods w systemie Windows 11

Możesz podłączyć swoje Airpods do komputera z systemem Windows, zwłaszcza z systemem Windows 11. Kliknij tutaj, aby zapoznać się z krótkim samouczkiem, jak to zrobić

Jak zamknąć laptopa i korzystać z monitora: 2 metody pracy

Jak zamknąć laptopa i korzystać z monitora: 2 metody pracy

Poznaj dwie metody pracy, aby zamknąć laptopa i używać monitora w systemie Windows, aby zwiększyć produktywność i zaoszczędzić czas.

Skonfiguruj serwer FTP FileZilla w systemie Windows Server

Skonfiguruj serwer FTP FileZilla w systemie Windows Server

Chcesz skonfigurować serwer FTP w systemie Windows Server w celu szybkiego przesyłania plików? Serwer FileZilla to droga do sukcesu.

Jakie nowe funkcje są dostępne w iOS 15.4?

Jakie nowe funkcje są dostępne w iOS 15.4?

Firma Apple właśnie wydała zaktualizowaną wersję systemu iOS — zawiera ona mnóstwo nowych, fajnych funkcji! Poznaj niektóre z najwybitniejszych.

Hostuj serwer muzyczny Subsonic w systemie Windows Server

Hostuj serwer muzyczny Subsonic w systemie Windows Server

Chcesz mieć własne prywatne Spotify lub Apple Music? Zainstaluj serwer muzyczny Subsonic już dziś, aby przesyłać strumieniowo własne utwory przez sieć.