Reklame

Ville det ikke være dejligt, hvis du automatisk kunne slå lyd fra din computers lydudgang, når du tager stikket til hovedtelefonerne ud? Det vil forhindre, at du vågner dine lejlighedsfolk ved et uheld i de små timer om morgenen, eller ved en fejlagtig afsløring af din kærlighed til Britney Spears i offentligheden.

Selvfølgelig kan du slå lyd fra højttalere og hovedtelefoner fra sag til sag ved hjælp af Volumen Mixer. (Lær mere om tilpasning af lyd i Windows 10.) Men ærligt er det ikke nødvendigt at gøre det, når du kan automatisere det med PowerShell.

Sådan kan du automatisk dæmpe din pc's lyd, når du fjerner hovedtelefonerne, ligesom smartphones gør.

Åbn Notepad for at komme i gang. Indsæt derefter følgende kode i det tomme dokument:

[Cmdletbinding ()] Param () # Tilføj definitioner til adgang til Audio API. Add-Type -TypeDefinition @ ' ved hjælp af System. Runtime. InteropServices; [Vejledning ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] interface IAudioEndpointVolume { // f (), g (),... er ubrugte COM-metodespalter. Definer disse, hvis du er interesseret. int f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (float fLevel, System. Guidet pguidEventContext); int j (); int GetMasterVolumeLevelScalar (ud float pfLevel); int k (); int l (); int m (); int n (); int SetMute ([MarshalAs (UnmanagedType. Bool)] bool bMute, System. Guidet pguidEventContext); int GetMute (ud bool pbMute); } [Vejledning ("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] interface IMMDevice { int Aktivér (ref System. Guid id, int clsCtx, int aktiveringParams, out IAudioEndpointVolume aev); } [Vejledning ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] interface IMMDeviceEnumerator { int f (); // Ubrugt. int GetDefaultAudioEndpoint (int dataFlow, int role, out IMMDevice endpoint); } [ComImport, vejledning ("BCDE0395-E52F-467C-8E3D-C4579291692E")] klasse MMDeviceEnumeratorComObject {} offentlig klasse Audio { statisk IAudioEndpointVolume Vol () { var enumerator = ny MMDeviceEnumeratorComObject () som IMMDeviceEnumerator; IMMDevice dev = null; Marshal. ThrowExceptionForHR (optælling. GetDefaultAudioEndpoint (/ * eRender * / 0, / * eMultimedia * / 1, out dev)); IAudioEndpointVolume epv = null; var epvid = typeof (IAudioEndpointVolume) .GUID; Marshal. ThrowExceptionForHR (dev. Aktivér (ref epvid, / * CLSCTX_ALL * / 23, 0, out epv)); returnere epv; } offentlig statisk float Volumen { få {float v = -1; Marshal. ThrowExceptionForHR (Vol (). GetMasterVolumeLevelScalar (ud v)); return v;} sæt {Marshal. ThrowExceptionForHR (Vol (). SetMasterVolumeLevelScalar (værdi, System. Guid. Tom));} } offentlig statisk bool Mute { få {bool mute; Marshal. ThrowExceptionForHR (Vol (). GetMute (out mute)); retur mute; } sæt {Marshal. ThrowExceptionForHR (Vol (). SetMute (værdi, System. Guid. Tom)); } } } '@ -Verbose While ($ sand) { # Rens alle begivenheder i den aktuelle session, siden det er i en uendelig løkke, for at få en ny start, når loop starter. Get-event | Fjern-begivenhed -ErrorAction SilentlyContinue #Registrering af begivenheden og venter på, at begivenheden skal udløses. Register-WmiEvent -Class Win32_DeviceChangeEvent. Vent-begivenhed -OutVariable begivenhed | Out-null $ EventType = $ Event.sourceargs.newevent | ` Sort-Object TIME_CREATED -Dending | ` Select-Object EventType -ExpandProperty EventType -First 1 # Betinget logik, der skal håndteres, hvornår man skal slå lyden fra / fra Slå af maskinen ved hjælp af Audio API. Hvis ($ EventType -ækv. 3) { [Audio]:: Mute = $ sand. Skriv-verbose "Dempet [$ ((Get-Date) .tostring ())]" } elseif ($ EventType -eq 2 -og [Audio]:: Mute -eq $ true) { [Audio]:: Mute = $ falsk. Skriv-verbose "UnMuted [$ ((Get-Date) .tostring ())]" } }
instagram viewer

Nu skal du gemme filen i PS1-format. Når du ser på dialogboksen Gem fil, skal du vælge Alle filer fra rullemenuen og kalde filen AutoMute.ps1. Navnet på selve filen er ikke vigtig, så vælg bare noget, der er let at huske.

For at aktivere scriptet skal du højreklikke på den nyligt oprettede fil og vælge Løb. Scriptet vil være aktivt, indtil du slukker for din maskine.

Dette er kun en af ​​mange måder PowerShell kan øge din produktivitet Øg din produktivitet med Windows PowerShell-scriptsHvad hvis du kunne bringe Linux-produktiviteten over til Windows? De fleste Linux-distros leveres pakket med det kraftige Bash-shell. PowerShell er en lige så kraftig terminal til Windows. Læs mere . Der er mange PowerShell-cmdlets, der forbedrer din Windows-oplevelse Powershell Cmdlets, der forbedrer dine Windows-administratorfærdighederPowershell er lige dele kommandolinjeværktøj og scriptingsprog. Det giver dig muligheden for at automatisere din computer via de samme kommandoer, du bruger til at administrere den. Læs mere .

Billedkredit: peus / Depositphotos

Dan er en britisk udstationerede, der bor i Mexico. Han er den administrerende redaktør for MUOs søsterwebsted, Blocks Decoded. På forskellige tidspunkter har han været Social Editor, Creative Editor og Finance Editor for MUO. Du kan finde ham strejfe rundt om showet på CES i Las Vegas hvert år (PR-folk, række ud!), Og han laver masser af sider bag kulisserne...