Ako automaticky vypnúť zvuk, keď sú slúchadlá odpojené od systému Windows 10

click fraud protection

Systém Windows 10 môže uchovávať samostatné zvukové profily pre rôzne zvukové zariadenia. Pre každé pripojené zvukové zariadenie môžete nastaviť inú úroveň hlasitosti a po pripojení zariadenia sa hlasitosť upraví automaticky. Nikto samozrejme neprestáva stlmiť zvukové zariadenie. Zvýšia alebo zníži hlasitosť, ale nikto zvyčajne neztlumí zvukové zariadenie.

Ak s počítačom používate pár slúchadiel a často ich musíte odpojiť, môžete použiť malý skript PowerShell, ktorý automaticky vypne zvuk, keď odpojíte slúchadlá.

Mobilné telefóny to robia, t. J. Keď odpojíte slúchadlá, hudba sa automaticky zastaví. Logika toho spočíva v tom, že ste už počúvali hudbu alebo ste náhodne zložili slúchadlá a potrebujete rýchly spôsob, ako ju vypnúť. Skript bol v podstate napísaný na rovnakom princípe Prateek Singh z GEEKEEFY.

Automaticky stlmiť zvuk

Otvorte program Poznámkový blok a prilepte nasledujúce;

[Cmdletbinding ()] Param () #Pridávanie definícií pre prístup k rozhraniu Audio API. Add-Type -TypeDefinition @ ' pomocou systému. Beh programu. InteropServices; [Guid ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] rozhranie IAudioEndpointVolume { // f (), g (),... sú nevyužité sloty metód COM. Definujte ich, ak vám to záleží. 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 1 (); int m (); int n (); int SetMute ([MarshalAs (UnmanagedType. Bool)] bool bMute, System. Guid pguidEventContext); int GetMute (z bool pbMute); } [Guid ("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] rozhranie IMMDevice { int Activate (ref. GUID id, int clsCtx, int ActivParams, out IAudioEndpointVolume aev); } [Guid ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] rozhranie IMMDeviceEnumerator { int f (); // Nepoužité. int GetDefaultAudioEndpoint (int dataFlow, int role, out IMMDevice endpoint); } [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] trieda MMDeviceEnumeratorComObject {} zvuk verejnej triedy { static IAudioEndpointVolume Vol () { var enumerator = new MMDeviceEnumeratorComObject () ako IMMDeviceEnumerator; IMMDevice dev = null; Marshal. ThrowExceptionForHR (sčítací komisár. GetDefaultAudioEndpoint (/ * eRender * / 0, / * eMultimedia * / 1, out dev)); IAudioEndpointVolume epv = null; var epvid = typeof (IAudioEndpointVolume) .GUID; Marshal. ThrowExceptionForHR (dev. Aktivovať (ref epvid, / * CLSCTX_ALL * / 23, 0, out epv)); návrat epv; } verejný statický objem float { získajte {float v = -1; Marshal. ThrowExceptionForHR (Vol (). GetMasterVolumeLevelScalar (out v)); návrat v;} nastaviť {maršál. ThrowExceptionForHR (Vol (). SetMasterVolumeLevelScalar (hodnota, System. GUID. Prázdny));} } verejný statický bool Mute { dostať {bool mute; Marshal. ThrowExceptionForHR (Vol (). GetMute (out mute)); mute návratu; } nastaviť {maršál. ThrowExceptionForHR (Vol (). SetMute (hodnota, System. GUID. Prázdny)); } } } '@ -Veróza, zatiaľ čo ($ true) { # Vyčistite všetky udalosti v aktuálnej relácii od jej nekonečnej slučky, aby ste znova začali pri spustení slučky. Get-Event | Remove-Event -ErrorAction SilentlyContinue #Registrácia udalosti a čakanie na spustenie udalosti. 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 -Prvé 1 #Dodatočná logika na zvládnutie, kedy vypnúť / zapnúť počítač pomocou zvukového rozhrania API. Ak ($ EventType -eq 3) { [Zvuk]:: Mute = $ true. Napíšte podrobnú správu „Ignorované [$ ((dátum) .str. ())]“ } elseif ($ EventType -eq 2 - a [Audio]:: Mute -eq $ true) { [Zvuk]:: Mute = $ false. Write-verbose "UnMuted [$ ((Get-Date) .tostring ())]" } }
instagram viewer

Uložte ho s príponou súboru PS1. Uistite sa, že v rozbaľovacej ponuke typu súboru vyberte možnosť „Všetky súbory“. Pomenujte súbor, ktorý vám na prvý pohľad povie, čo robí. Uložte ho na nejaké miesto, kde ho pravdepodobne náhodou neodstránite, ale tiež na miesto, kde ho ľahko nájdete, ak to potrebujete.

Spustenie skriptu

PowerShell nedokáže len opraviť skript. Existuje zabudované bezpečnostné opatrenie, ktoré tomu zabráni, ale existuje spôsob, ako to dosiahnuť. Máme podrobný článok o tom, ako to môžete urobiť. Postupujte podľa pokynov automaticky spustite skript PowerShell práve ste vytvorili a pomocou naplánovanej úlohy spustite skript pri každom štarte počítača.

Prípadne môžete skript spustiť manuálne pri zavádzaní systému. Používam ho už menej ako 30 minút a neviem, ako som predtým žil.

watch instagram story