Kako automatski isključiti zvuk prilikom isključivanja slušalica na Windows-u

  • Michael Fisher
  • 0
  • 4465
  • 706
Oglas

Ne bi li bilo sjajno kada biste mogli automatski isključiti audio izlaz računala kad isključite slušalice? To bi spriječilo da se slučajno probude vaši kolege u malim jutarnjim satima ili pogrešno otkriju vašu ljubav prema Britney Spears u javnosti.

Naravno, zvučnike i slušalice možete zanemariti od slučaja do slučaja koristeći Volume Mixer. (Saznajte više o prilagođavanju zvuka u sustavu Windows 10.) Ali iskreno, nema potrebe za tim kada ga možete automatizirati pomoću programa PowerShell.

Evo kako automatski isključiti zvuk računala s računala kada izvadite slušalice, kao što to čine pametni telefoni.

Za početak otvorite Notepad. Zatim zalijepite sljedeći kôd u prazan dokument:

[cmdletbinding ()] Param () #Dodavanje definicija za pristup vrsti dodatka Audio API -TypeDefinition @ 'pomoću System.Runtime.InteropServices; [Vodič ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] sučelje IAudioEndpointVolume // f (), g (), ... nisu iskorišteni slotovi metoda COM. Definirajte ih ako vam je stalo 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 (van bool pbMute);  [Vodič ("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] sučelje IMMDevice int Activate (ref System.Guid id, int clsCtx, int activationParams, out IA acumeParams)  [Vodič ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] sučelje IMMDeviceEnumerator int f (); // Unused int GetDefaultAudioEndpoint (int dataFlow, int uloga, van IMMDevice krajnja točka);  [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] klasa MMDeviceEnumeratorComObject  javna klasa zvuka statički IAudioEndpointVolume Vol () var enumerator = novi MMDeviceEnumeratorComOMee; 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)); uzvrati epv;  javni statički plutajući volumen get float v = -1; Marshal.ThrowExceptionForHR (Vol (). GetMasterVolumeLevelScalar (out v)); return v; set Marshal.ThrowExceptionForHR (Vol (). SetMasterVolumeLevelScalar (vrijednost, System.Guid.Empty)); javni statički bool Mute get bool mute; Marshal.ThrowExceptionForHR (Vol (). GetMute (nemi)); uzvratiti nijem;  set Marshal.ThrowExceptionForHR (Vol (). SetMute (vrijednost, System.Guid.Empty));  '@ -Verbose Iako ($ true) #Očistite sve događaje u trenutnoj sesiji od njene beskonačne petlje, da biste započeli novi trenutak kada započne petlja Get-Event | Remove-Event -ErrorAction SilentlyContinue #Registriranje događaja i čekanje da se događaj pokrene Register-WmiEvent -Class Win32_DeviceChangeEvent Wait-Event -OutVariable Event | Out-Null $ EventType = $ Event.sourceargs.newevent | 'Sortiraj-objekt TIME_CREATED -Descending | 'Select-Object EventType -ExpandProperty EventType -First 1 #Uvjetna logika za obradu, Kada za isključivanje / isključivanje zvuka uređaja pomoću Audio API If ($ EventType -eq 3) [Audio] :: Mute = $ true Write-Verbose "Muted [$ ((Datum-datuma) .tostring ())] " elseif ($ EventType -eq 2 -i [Audio] :: Mute -eq $ true) [Audio] :: Mute = $ false Write-Verbose" Unmuted [$ ((datum-datum) .tostring ())] "

Sada datoteku trebate spremiti u PS1 formatu. Kada gledate dijalog Spremi datoteku, odaberite Sve datoteke s padajućeg izbornika i pozovite datoteku AutoMute.ps1. Sam naziv datoteke nije važan, pa jednostavno odaberite nešto što se lako pamti.

Kako biste aktivirali skriptu, desnom tipkom miša kliknite novo stvorenu datoteku i odaberite Trčanje. Skripta će biti aktivna dok ne isključite svoj stroj.

Ovo je samo jedan od mnogih načina na koji PowerShell može povećati vašu produktivnost Povećajte svoju produktivnost pomoću programa Windows PowerShell Skripti poboljšati vašu produktivnost pomoću skripti sustava PowerShell Što ako možete produktivnost Linuxa prenijeti na Windows? Većina Linux distribucija dolazi upakirana s moćnom Bash školjkom. PowerShell je jednako moćan terminal za sustav Windows. , Postoji puno PowerShell cmdleta koji će poboljšati vaš doživljaj Windows Powershell Cmdlets koji će poboljšati vaše Windows Admin Skills Powershell Cmdlets koji će poboljšati vaše Windows Admin Skills Powershell je jednaki dijelovi alata naredbenog retka i jezika skriptiranja. Pruža vam mogućnost automatizacije vašeg računala pomoću istih naredbi koje koristite za njegovo upravljanje. .

Kreditna slika: peus / Depositphotos




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.