Jak automaticky vypnout zvuk při odpojování sluchátek ve Windows

  • Brian Curtis
  • 0
  • 2887
  • 608
reklama

Nebylo by skvělé, kdybyste mohli automaticky vypnout zvukový výstup počítače, kdykoli odpojíte sluchátka? Zabránilo by to náhodnému probuzení vašich spolubydlících v malých ranních hodinách nebo omylu odhalilo vaši lásku k Britney Spears na veřejnosti.

Reproduktory a sluchátka můžete samozřejmě ztlumit případ od případu pomocí směšovače hlasitosti. (Další informace o přizpůsobení zvuku v systému Windows 10.) Ale upřímně řečeno, nemusíte to dělat, když jej můžete automatizovat pomocí PowerShell.

Zde je návod, jak automaticky ztlumit zvuk počítače, když odpojíte sluchátka, podobně jako smartphony.

Nejprve otevřete Poznámkový blok. Poté vložte následující kód do prázdného dokumentu:

[cmdletbinding ()] Param () #Přidání definic pro přístup k doplňku Audio API -TypeDefinition @ 'pomocí System.Runtime.InteropServices; [Guid ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] interface IAudioEndpointVolume // f (), g (), ... jsou nevyužité sloty metod COM. Definujte je, pokud vám 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 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 activatedParams, out IAumeEevpoint);  [Guid ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] rozhraní IMMDeviceEnumerator int f (); // Unused int GetDefaultAudioEndpoint (int dataFlow, int role, out IMMDevice endpoint);  [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] třída MMDeviceEnumeratorComObject  public class Audio statický IAudioEndpointVolume Vol () var enumerator = new MMDeviceEnumeratorComObject () jako IMMDevice; 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)); návrat 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 (out mute)); mute;  set Marshal.ThrowExceptionForHR (Vol (). SetMute (value, System.Guid.Empty));  '@ -Verbose while ($ true) #Clean všechny události v aktuální relaci od jeho v nekonečné smyčce, aby se nový začátek, když smyčka začíná Get-Event | Remove-Event -ErrorAction SilentlyContinue #Registating the event and wait to be be trigered 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 -První 1 #Podmínečná logika pro zpracování, kdy Ztlumit / Ztlumit stroj pomocí Audio API If ($ EventType -eq 3) [Audio] :: Mute = $ true Write-Verbose "Ztlumeno [$ ((Get-Date) .tostring ())] " elseif ($ EventType -eq 2 - a [Audio] :: Mute -eq $ true) [Audio] :: Mute = $ false false-Verbose" UnMuted [$ ((Get-Date) .tostring ())] "

Nyní musíte soubor uložit ve formátu PS1. Při pohledu na dialogové okno Uložit soubor vyberte Všechny soubory z rozbalovací nabídky a zavolejte soubor AutoMute.ps1. Název samotného souboru není důležitý, takže stačí vybrat něco, co je snadno zapamatovatelné.

Chcete-li skript aktivovat, klikněte pravým tlačítkem na nově vytvořený soubor a vyberte Běh. Skript bude aktivní, dokud stroj nevypnete.

Toto je jen jeden z mnoha způsobů, jak může PowerShell zvýšit vaši produktivitu Zvýšit svou produktivitu pomocí skriptů Windows PowerShell Zvýšit svou produktivitu pomocí skriptů Windows PowerShell Co kdybyste mohli přenést produktivitu Linuxu do Windows? Většina linuxových distribucí je dodávána s výkonným Bash shellem. PowerShell je stejně výkonný terminál pro Windows. . Existuje spousta rutin PowerShell, které zlepší vaše prostředí Windows Powershell Cmdlets, které zlepší vaše Windows Admin Skills Powershell Cmdlets, které zlepší vaše Windows Admin Skills Powershell je nástroj pro příkazový řádek a skriptovací jazyk se stejnými částmi. To vám dává možnost automatizovat počítač pomocí stejných příkazů, které používáte pro jeho správu. .

Obrázek Kredit: peus / Depositphotos




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.