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.

Zostaw komentarz

Kompilacja 27913 dla systemu Windows 11 ze zmianami w aplikacji Ustawienia (Canary)

Kompilacja 27913 dla systemu Windows 11 ze zmianami w aplikacji Ustawienia (Canary)

W systemie Windows 11 w wersji 27913 (Canary) zastosowano nowy wygląd interfejsu użytkownika Ustawień, przywrócono dźwięk uruchamiania systemu Vista, naprawiono problemy z tapetą czarnego ekranu i wiele więcej.

Pobierz tapetę Surface Laptop 7 z okazji 50. rocznicy firmy Microsoft dla systemu Windows 11

Pobierz tapetę Surface Laptop 7 z okazji 50. rocznicy firmy Microsoft dla systemu Windows 11

Pobierz tapetę z okazji 50. rocznicy firmy Microsoft na Surface Laptop 7, przedstawiającą ikoniczny motyw Windows 11 Bloom w ciemnych i złotych kolorach.

Jak zainstalować RustDesk do zdalnego pulpitu w systemie Windows 11

Jak zainstalować RustDesk do zdalnego pulpitu w systemie Windows 11

Zainstaluj i skonfiguruj RustDesk w systemie Windows 11, aby uzyskać dostęp do prywatnego pulpitu zdalnego, korzystając z serwerów publicznych lub skonfiguruj własny pulpit, aby zapewnić bezpieczne połączenia.

Czy powinienem zainstalować system Windows 11 24H2 na moim komputerze? Nie, i oto dlaczego.

Czy powinienem zainstalować system Windows 11 24H2 na moim komputerze? Nie, i oto dlaczego.

Nie, nie należy instalować systemu Windows 11 24H2, ponieważ na wczesnym etapie mogą pojawiać się problemy. Ponadto nie wszystkie funkcje są jeszcze dostępne.

Wersja finalna systemu Windows 11 25H2 (kompilacja 26200.5074) wydana jako wersja zapoznawcza

Wersja finalna systemu Windows 11 25H2 (kompilacja 26200.5074) wydana jako wersja zapoznawcza

Kompilacja 26200.5074 dla systemu Windows 11 25H2 zostanie udostępniona w kanale Release Preview przed oficjalną premierą, a oficjalny plik ISO zostanie udostępniony wkrótce.

Jak ustawić statyczny adres IP w systemie Windows 10

Jak ustawić statyczny adres IP w systemie Windows 10

Możesz ustawić statyczny adres IP w systemie Windows 10 za pomocą wiersza poleceń, programu PowerShell, Panelu sterowania, a nawet aplikacji Ustawienia. Oto jak to zrobić.

Jak odinstalować WSL w systemie Windows 11

Jak odinstalować WSL w systemie Windows 11

Aby odinstalować WSL w systemie Windows 11, usuń dystrybucje, odinstaluj aktualizację jądra i komponenty graficznego interfejsu użytkownika, a następnie wyłącz platformę WSL. Oto instrukcja.

Wymagania systemowe Windows 11 23H2

Wymagania systemowe Windows 11 23H2

Windows 11 23H2 (aktualizacja 2023) ma takie same minimalne wymagania systemowe jak wersje 22H2 i 21H2. Szczegóły tutaj.

Windows 11 25H2: Pełna lista usuniętych funkcji (2025)

Windows 11 25H2: Pełna lista usuniętych funkcji (2025)

W 2023 roku w systemie Windows 11 usunięto lub wycofano funkcje, w tym Windows Mixed Reality, WordPad, VBScript, Steps Recorder i ARM 32-bit.

Pobierz aplikację Artemis II Earthset od NASA i ustaw ją jako tapetę w systemie Windows 11

Pobierz aplikację Artemis II Earthset od NASA i ustaw ją jako tapetę w systemie Windows 11

Pobierz tapetę Earthset z NASA, aby ustawić ją jako tapetę pulpitu w systemie Windows 11.