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 slučajno probudite svoje stanove u malim jutarnjim satima ili pogrešno otkrijete svoju 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 da to činite kada to možete automatizirati pomoću PowerShell-a.

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 Audio API-ju. Add-Type -TypeDefinition @ ' pomoću sustava. Runtime. InteropServices; [Vodič ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] sučelje IAudioEndpointVolume { // f (), g (),... su neiskorišteni uratci COM metoda. Definirajte ih ako vam je stalo. int f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (float fLevel, System. Vodič pguidEventContext); int j (); int GetMasterVolumeLevelScalar (out float pfLevel); int k (); int l (); int m (); int n (); int SetMute ([MarshalAs (UnmanagedType) Bool)] bool bMute, Sustav. Vodič pguidEventContext); int GetMute (van bool pbMute); } [Vodič ("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] sučelje IMMDevice { int Aktiviraj (ref sustav). ID vodiča, int clsCtx, int activationParams, out IAudioEndpointVolume aev); } [Vodič ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] sučelje IMMDeviceEnumerator { int f (); // Neiskorišteno. int GetDefaultAudioEndpoint (int dataFlow, int uloga, krajnja točka IMMDevice); } [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] klasa MMDeviceEnumeratorComObject {} zvuk javne klase { statički IAudioEndpointVolume Vol () { var enumerator = novi MMDeviceEnumeratorComObject () kao IMMDeviceEnumerator; IMMDevice dev = null; Maršal. ThrowExceptionForHR (popisivač. GetDefaultAudioEndpoint (/ * eRender * / 0, / * eMultimedia * / 1, out dev)); IAudioEndpointVolume epv = null; var epvid = typeof (IAudioEndpointVolume) .GUID; Maršal. ThrowExceptionForHR (dev. Aktiviraj (ref. Epvid, / * CLSCTX_ALL * / 23, 0, out epv)); uzvrati epv; } Javni statički plovak Volumen { dobiti {float v = -1; Maršal. ThrowExceptionForHR (Vol (). GetMasterVolumeLevelScalar (out v)); return v;} postavljen {Marshal. ThrowExceptionForHR (Vol (). SetMasterVolumeLevelScalar (vrijednost, Sustav). Vodič. Prazan));} } javni statički bool Mute { dobiti {bool mute; Maršal. ThrowExceptionForHR (Vol (). GetMute (van mute)); uzvratiti nijem; } postavljen {Marshal. ThrowExceptionForHR (Vol (). SetMute (vrijednost, Sustav). Vodič. Prazan)); } } } '@ -Verbose Dok ($ true) { #Očistite sve događaje u trenutnoj sesiji od njene beskonačne petlje da biste započeli novi početak. Get-Event | Remove-Event -ErrorAction SilentlyContinue #Registriranje događaja i čekanje da se događaj pokrene. Registrirajte se-WmiEvent -Class Win32_DeviceChangeEvent. Pričekajte događaj -OutVariabilan događaj | Izvanredan $ EventType = $ Event.sourceargs.newevent | ` Poredaj-objekt TIME_CREATED -Descending | ` Select-Object EventType -ExpandProperty EventType -First 1 #Uvjetna logika za rukovanje, Kada isključiti / isključiti zvuk uređaja pomoću Audio API-ja. Ako je ($ EventType -eq 3) { [Audio]:: Mute = $ true. Doslovno pisanje "Zanemareno [$ ((datum-datum) .tostring ())]" } elseif ($ EventType -eq 2 -i [Audio]:: Isključi zvuk -eq $ true) { [Audio]:: Isključi zvuk = $ false. Pisanje-verbose "UnMuted [$ ((datum-datum) .tostring ())]" } }
instagram viewer

Sada datoteku trebate spremiti u PS1 formatu. Kada gledate dijalog Spremi datoteku, odaberite Sve datoteke s padajućeg izbornika i pozovite datoteku AutoMute.ps1. Naziv datoteke nije važan, pa odaberite jednostavno nešto što se 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 PowerShell može povećati vašu produktivnost Povećajte svoju produktivnost sa Windows PowerShell skriptamaŠto ako produktivnost Linuxa možete prenijeti na Windows? Većina Linux distribucija dolazi upakirana s moćnom Bash školjkom. PowerShell je jednako moćan terminal za sustav Windows. Čitaj više . Ima puno PowerShell cmdleti koji će poboljšati vaš Windows doživljaj Powershell Cmdlets koji će poboljšati vaše Windows Admin SkillsPowershell je jednaki dijelovi alata naredbenog retka i jezika skripti. Pruža vam mogućnost automatizacije vašeg računala pomoću istih naredbi koje koristite za njegovo upravljanje. Čitaj više .

Kreditna slika: peus / Depositphotos

Dan je britanski emigrant koji živi u Meksiku. Glavni je urednik za sestrino mjesto MUO-a, Blocks Decoded. U raznim je vremenima bio društveni urednik, kreativni urednik i urednik financija za MUO. Možete ga naći kako luta po izložbenom podiju na CES-u u Las Vegasu svake godine (PR ljudi, obratite se!), A on čini puno stranica iza scene...