Cum să dezactivați automat sunetul când deconectați căștile de pe Windows
Nu ar fi minunat dacă ați putea să dezactivați automat ieșirea audio a computerului de fiecare dată când deconectați căștile? Aceasta ar împiedica trezirea în mod accidental a colegilor tăi în orele mici de dimineață, sau dezvăluirea greșită a dragostei tale de Britney Spears în public.
Desigur, puteți dezactiva difuzoarele și căștile de la caz la caz folosind mixerul de volum. (Aflați mai multe despre personalizarea sunetului în Windows 10.) Dar, sincer, nu este nevoie să faceți acest lucru când îl puteți automatiza cu PowerShell.
Iată cum să opriți automat sunetul PC-ului când scoateți căștile, la fel ca smartphone-urile.
Pentru a începe, deschideți Notepad. Apoi, lipiți următorul cod în documentul gol:
[cmdletbinding ()] Param () #Adăugarea definițiilor pentru accesarea "Add-Type -TypeDefinition @" a aplicației Audio API utilizând System.Runtime.InteropServices; [Guid ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] Interfața IAudioEndpointVolume // f (), g (), ... sunt sloturi de metode COM neutilizate. Definiți-le dacă vă interesează int f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (float fLevel, System.Guid pguidEventContext); int j (); int GetMasterVolumeLevelScalar (afară float pfLevel); int k (); int l (); int m (); int n (); int SetMute ([MarshalAs (UnmanagedType.Bool)] bool bMute, System.Guid pguidEventContext); int GetMute (afară bool pbMute); [Guid ("D666063F-1587-4E43-81F1-B948E807363F"), interfațăType (ComInterfaceType.InterfaceIsIUnknown)] interfață IMMDevice int Activare (ID sistem id.Guid, int clsCtx, int activationParams, out IAudioEndpointVolume aev); [Guid ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] interfață IMMDeviceEnumerator int f (); // Nefolosit int GetDefaultAudioEndpoint (int dataFlow, rol int, outpoint final IMMDevice); [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] clasa MMDeviceEnumeratorComObject clasa publica Audio static IAudioEndpointVolume Vol () var enumerator = new MMDeviceEnumeratorComObject; IMMDevice dev = null; Marshal.ThrowExceptionForHR (enumerator.GetDefaultAudioEndpoint (/ * eRender * / 0, / * eMultimedia * / 1, out dev)); IAudioEndpointVolume epv = null; var epvid = tipul (IAudioEndpointVolume) .GUID; Marshal.ThrowExceptionForHR (Dev.Activate (ref epvid, / * CLSCTX_ALL * / 23, 0, out epv)); retur epv; float static public volum get float v = -1; Marshal.ThrowExceptionForHR (Vol ()). GetMasterVolumeLevelScalar (out v)); Marshal.ThrowExceptionForHR (Vol () .GetMute (mut)); returnează mute; set Marshal.ThrowExceptionForHR (Vol (). SetMute (valoare, System.Guid.Empty)); '@ -Verbose În timp ce ($ true) #Cleați toate evenimentele din sesiunea curentă de la o buclă infinită, pentru a face un nou început când începe bucla Get-Event | Remove-Event -ErrorAction SilentlyContinue # Înregistrarea evenimentului și Așteptare pentru declanșarea evenimentului Register-WmiEvent -Class Win32_DeviceChangeEvent Wait-Event -OutVariabil Event | Out-Null $ EventType = $ Event.sourceargs.newevent | "Obiect sortare TIME_CREATED -Descărcare | "Select-Object EventType -ExpandProperty EventType -First 1 # Logica Condiționată pentru a gestiona, Când să Mute / unMute aparatul folosind Audio API Dacă ($ EventType -eq 3) [Audio] :: Mute = $ true Write-Verbose" [$ ((Get-Date) .tostring ())] " elseif ($ EventType -eq2- și [Audio] :: Mute -eq $ true) [Audio] :: Mute = $ false Write-Verbose" Nemulțumit [$ ((Get-Date) .tostring ())] "
Acum trebuie să salvați fișierul în format PS1. Când vă uitați la dialogul Salvare fișier, selectați Toate filele din meniul drop-down și apelați fișierul AutoMute.ps1. Numele fișierului în sine nu este important, deci alegeți doar ceva ușor de reținut.
Pentru a activa scriptul, faceți clic dreapta pe fișierul nou creat și selectați Alerga. Scenariul va fi activ până când opriți aparatul.
Acesta este doar unul dintre multele moduri în care PowerShell vă poate crește productivitatea Boostați productivitatea cu scripturile Windows PowerShell Boostați productivitatea cu scripturile Windows PowerShell Ce se întâmplă dacă ați putea aduce productivitatea Linux pe Windows? Cele mai multe distribuții Linux vin ambalate cu shell-ul puternic Bash. PowerShell este un terminal la fel de puternic pentru Windows. Citeste mai mult . Există o mulțime de cmdlet-uri PowerShell care vă vor îmbunătăți experiența Windows Powershell Cmdlets care vă vor îmbunătăți abilitățile de administrare Windows Powershell Cmdlets care vă vor îmbunătăți abilitățile de administrare Windows Powershell este un instrument de linie egal pentru părți de comandă și limbaj de scripting. Vă oferă posibilitatea de a automatiza computerul prin aceleași comenzi pe care le utilizați pentru a le administra. Citeste mai mult .
Credit de imagine: peus / Depositphotos
Explorați mai multe despre: Căști, PowerShell, Trucuri Windows.