Kaip automatiškai nutildyti garsą, kai "Windows 10" ausinės yra atjungtos

click fraud protection

„Windows 10“ gali laikyti atskirus garso profilius skirtingiems garso įrenginiams. Kiekvienam prijungtam garso įrenginiui galite nustatyti skirtingą garsumo lygį, o prijungus įrenginį garsumas bus reguliuojamas automatiškai. Žinoma, niekas nelaiko garso įrenginio visą laiką nutildytu. Jie padidins arba sumažins garsumą, bet niekas paprastai garso įrenginio neatidarys.

Jei darbalaukyje naudojate porą ausinių ir dažnai turite jas atjungti, galite naudoti mažą „PowerShell“ scenarijų, kuris automatiškai nutildys garsą, kai atjungsite ausines.

Tai daro tai, ką daro mobilieji telefonai, t.y., kai atjungi ausines, muzika automatiškai sustoja. To logika yra ta, kad jūs arba baigėte klausytis muzikos, arba netyčia išėmėte ausines ir jums reikia greito būdo, kaip jas išjungti. Scenarijų iš esmės tuo pačiu principu parašė Prateekas Singhas iš GEEKEEFY.

Automatiškai nutildyti garsą

Atidarykite „Notepad“ ir įklijuokite šiuos dalykus;

[cmdletbinding ()] „Param“) # Apibrėžimų pridėjimas norint pasiekti garso įrašo API. Pridėti tipą -TypeDefinition @ ' naudojant sistemą. Klaida. Tarpusavio paslaugos; [„Guid“ („5CDF2C82-841E-4546-9722-0CF74078229A“), „InterfaceType“ („ComInterfaceType“. InterfaceIsIUnknown)] sąsaja „IAudioEndpointVolume“ { // f (), g (),... yra nepanaudoti COM metodo laiko tarpsniai. Apibrėžkite juos, jei jums rūpi. int f (); int g (); int h (); int i (); int „SetMasterVolumeLevelScalar“ („float fLevel“, sistema. Guid pguidEventContext); int j (); int „GetMasterVolumeLevelScalar“ („float pfLevel“); int k (); int l (); int m (); int n (); int SetMute ([MarshalAs (UnmanagedType. Bool)] bool bMute, sistema. Guid pguidEventContext); int GetMute (out bool pbMute); } [„Guid“ („D666063F-1587-4E43-81F1-B948E807363F“), „InterfaceType“ („ComInterfaceType“). InterfaceIsIUnknown)] sąsaja IMMDevice { int aktyvuoti (ref. Guid id, int clsCtx, int activationParams, out IAudioEndpointVolume aev); } [„Guid“ („A95664D2-9614-4F35-A746-DE8DB63617E6“), „InterfaceType“ („ComInterfaceType“. InterfaceIsIUnknown)] sąsaja IMMDeviceEnumerator { int f (); // Nenaudojamas. int „GetDefaultAudioEndpoint“ (int dataFlow, int roll, out IMMDevice endpoint); } [„ComImport“, „Guid“ („BCDE0395-E52F-467C-8E3D-C4579291692E“)] klasės „MMDeviceEnumeratorComObject“ {} viešosios klasės garsas { statinis „IAudioEndpointVolume Vol“ () { var enumerator = new MMDeviceEnumeratorComObject () kaip IMMDeviceEnumerator; IMMDevice dev = nulis; Maršalas. „ThrowExceptionForHR“. „GetDefaultAudioEndpoint“ (/ * eRender * / 0, / * eMultimedia * / 1, out dev)); IAudioEndpointVolume epv = nulis; var epvid = typeof (IAudioEndpointVolume) .GUID; Maršalas. „ThrowExceptionForHR“ (dev. Suaktyvinti (ref epvid, / * CLSCTX_ALL * / 23, 0, out epv)); grįžti epv; } viešo statinio plūdės tūris { gauti {plūduriuoti v = -1; Maršalas. „ThrowExceptionForHR“ („Vol“). „GetMasterVolumeLevelScalar“ (iš v)); grįžti v;} nustatyti {maršalas. „ThrowExceptionForHR“ („Vol“). „SetMasterVolumeLevelScalar“ (vertė, sistema. Guidas. Tuščia));} } viešas statinis garsas Nutildyti { gauti {bool nutildyti; Maršalas. „ThrowExceptionForHR“ (Vol (). GetMute (nutildyti)); grąžinti nutildymą; } nustatyti {maršalas. „ThrowExceptionForHR“ („Vol“). „SetMute“ (vertė, sistema. Guidas. Tuščia)); } } } '@ -Verbozė Kol (tiesa, $) { # Išvalykite visus dabartinės sesijos įvykius, nes ji yra begalinėje kilpoje, kad prasidėtų nauja kilmė. Renginių renginys | Pašalinti įvykį - „ErerorAction“ SilentlyContinue # Įregistruoti įvykį ir laukti, kol įvyks įvykis. Registruotis-WmiEvent -Class Win32_DeviceChangeEvent. „Wait-Event“ - „OutVariable “įvykis |„ Out-Null “$ EventType = $ Event.sourceargs.newevent | ` Objektas „Sort-Object TIME_CREATED“ - mažėjančia tvarka | ` „Select-Object EventType -ExpandProperty“ „EventType“ -Pirmasis 1 #Techninė tvarkymo logika: Kada nutildyti / nutildyti įrenginį naudojant „Audio API“. Jei ($ EventType -eq 3) { [Audio]:: Nutildyti = $ tiesa. Rašomasis žodinis žodis "Nutildytas [$ ((gavimo data) .tostring ())]" } elseif ($ EventType -eq 2 ir [Audio]:: Nutildyti -eq $ true) { [Garsas]:: Nutildyti = $ klaidinga. Rašomasis žodinis žodis „Neįjungta [$ ((gavimo data) .tostring ())]“ } }
instagram viewer

Išsaugokite jį su PS1 failo plėtiniu. Įsitikinkite, kad išskleidžiamajame failo tipo pasirinkote „Visi failai“. Suteikite failui pavadinimą, kuris iš pirmo žvilgsnio jums pasakys, ką jis daro. Išsaugokite jį vietoje, kur vargu ar ištrinsite atsitiktinai, bet taip pat ten, kur prireikus lengvai rasite.

Veikia scenarijus

„PowerShell“ gali ne tik leisti scenarijų automatiškai. Yra įmontuota apsaugos priemonė, neleidžianti to daryti, tačiau yra kelias aplink. Turime išsamų straipsnį, kaip galite tai padaryti. Vykdykite instrukcijas automatiškai paleiskite „PowerShell“ scenarijų ką tik sukūrėte, ir naudokite suplanuotą užduotį scenarijui paleisti kiekvieną kartą paleidę kompiuterį.

Arba galite rankiniu būdu paleisti scenarijų paleisdami savo sistemą. Aš jį naudoju mažiau nei 30 minučių ir nežinau, kaip aš anksčiau be jo gyvenau.

watch instagram story