Så här stänger du automatiskt av ljudet när hörlurarna är anslutna till Windows 10

click fraud protection

Windows 10 kan behålla separata ljudprofiler för olika ljudenheter. För varje ljudenhet som du ansluter kan du ställa in en annan volymnivå och när enheten är ansluten kommer volymen att justeras automatiskt. Naturligtvis håller ingen en ljudenhet stängd hela tiden. De kommer att öka eller minska volymen, men ingen dämpar vanligtvis en ljudenhet.

Om du använder ett par hörlurar på skrivbordet och ofta måste koppla bort dem kan du använda ett litet PowerShell-skript som automatiskt stänger av ljudet när du kopplar ur hörlurarna.

Det här är något som mobiltelefoner gör, dvs när du kopplar ur hörlurarna stannar musiken automatiskt. Logiken bakom detta är att du antingen har lyssnat på musik eller att du av misstag har tagit bort hörlurarna och att du behöver ett snabbt sätt att stänga av den. Manuset var i princip skrivet på samma princip av Prateek Singh från GEEKEEFY.

Stäng av ljudet automatiskt

Öppna Anteckningar och klistra in följande;

[Cmdletbinding ()] Param () # Lägga till definitioner för åtkomst till Audio API. Add-Type -TypeDefinition @ ' använder System. Körning. InteropServices; [Guid ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] gränssnitt IAudioEndpointVolume { // f (), g (),... är oanvända COM-metodluckor. Definiera dessa om du bryr dig. int f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (float fLevel, System. Guidad pguidEventContext); int j (); int GetMasterVolumeLevelScalar (ut float pfLevel); int k (); int l (); int m (); int n (); int SetMute ([MarshalAs (UnmanagedType. Bool)] bool bMute, System. Guidad pguidEventContext); int GetMute (ut bool pbMute); } [Guid ("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] gränssnitt IMMDevice { int Aktivera (ref System. Guid id, int clsCtx, int aktiveringParams, out IAudioEndpointVolume aev); } [Guid ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] gränssnitt IMMDeviceEnumerator { int f (); // oanvänd. int GetDefaultAudioEndpoint (int dataFlow, int-roll, out IMMDevice endpoint); } [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] klass MMDeviceEnumeratorComObject {} offentlig klassljud { statisk IAudioEndpointVolume Vol () { var enumerator = new MMDeviceEnumeratorComObject () som IMMDeviceEnumerator; IMMDevice dev = null; Marskalk. ThrowExceptionForHR (enumerator. GetDefaultAudioEndpoint (/ * eRender * / 0, / * eMultimedia * / 1, out dev)); IAudioEndpointVolume epv = null; var epvid = typeof (IAudioEndpointVolume) .GUID; Marskalk. ThrowExceptionForHR (dev. Aktivera (ref epvid, / * CLSCTX_ALL * / 23, 0, out epv)); return epv; } public static float Volym { få {float v = -1; Marskalk. ThrowExceptionForHR (Vol (). GetMasterVolumeLevelScalar (out v)); return v;} set {Marshal. ThrowExceptionForHR (Vol (). SetMasterVolumeLevelScalar (värde, system. Guid. Tömma));} } public static bool Mute { få {bool mute; Marskalk. ThrowExceptionForHR (Vol (). GetMute (out mute)); tillbaka stum; } set {Marshal. ThrowExceptionForHR (Vol (). SetMute (värde, system. Guid. Tömma)); } } } '@ -Verbose While ($ true) { # Rensa alla händelser i den aktuella sessionen sedan dess i en oändlig slinga, för att göra en ny start när slingan börjar. Get-Event | Ta bort-Event -ErrorAction Silently Fortsätt # Registrera händelsen och vänta på att händelsen ska utlösas. 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 # Villkorlig logik att hantera, När du vill stänga av / avstänga maskinen med Audio API. If ($ EventType -ekv 3) { [Audio]:: Mute = $ true. Skriv-verbos "Dämpad [$ ((Get-Date) .tostring ())]" } elseif ($ EventType -eq 2 -och [Audio]:: Mute -eq $ true) { [Audio]:: Mute = $ falsk. Skriv-verbos "UnMuted [$ ((Get-Date) .tostring ())]" } }
instagram viewer

Spara det med PS1-filändelsen. Se till att du väljer "Alla filer" i rullgardinsmenyn för filtyp. Ge filen ett namn som snabbt kan berätta vad den gör. Spara det på ett ställe som det inte är troligt att du tar bort det av misstag men också där du enkelt hittar det om du behöver.

Kör manuset

PowerShell kan inte bara autorisera ett skript. Det finns en inbyggd säkerhetsåtgärd som hindrar den från att göra det men det finns en väg runt det. Vi har en detaljerad artikel om hur du kan göra just det. Följ instruktionerna till kör PowerShell-skriptet automatiskt du just skapade och använda en schemalagd uppgift för att starta skriptet varje gång du startar din dator.

Alternativt kan du köra skriptet manuellt när du startar ditt system. Jag har använt det i mindre än 30 minuter och jag vet inte hur jag levde utan det förut.

watch instagram story