Sådan tændes lyden automatisk, når du tager hovedtelefoner ud af stikkontakten på Windows

  • Joseph Goodman
  • 0
  • 3676
  • 218
Reklame

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

Selvfølgelig kan du dæmpe højttalere og hovedtelefoner fra sag til sag ved hjælp af Volumenblander. (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 den med PowerShell.

Her er, hvordan du automatisk dæmper 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 @ 'vha. System.Runtime.InteropServices; [Vejledning ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType.InterfaceIsIUnbekendt)] interface IAudioEndpointVolume // f (), g (), ... er ubrugte COM-metode slots. Definer disse, hvis du er interesseret i f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (float fLevel, System.Guid pguidEventContext); int j (); int GetMasterVolumeLevelScalar (ud flyder pfLevel); int k (); int l (); int m (); int n (); int SetMute ([MarshalAs (UnmanagedType.Bool)] bool bMute, System.Guid pguidEventContext); int GetMute (ud bool pbMute);  [Vejledning ("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType (ComInterfaceType.InterfaceIsIUnbekendt)] interface IMMDevice int Aktiver (ref System.Guid id, int clsCtx, int activationParams, out IAolioEndpoint)  [Vejledning ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType.InterfaceIsIUnbekendt)] interface IMMDeviceEnumerator int f (); // Ubrugt int GetDefaultAudioEndpoint (int dataFlow, int role, out IMMDevice endpoint);  [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] klasse MMDeviceEnumeratorComObject  public class Audio statisk IAudioEndpointVolume Vol () var enumerator = new MMDeviceEnumeratorComOerVice (as) IMMDevice dev = null; Marshal.ThrowExceptionForHR (tæller.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)); returnere epv;  offentlig statisk float Volumen get float v = -1; Marshal.ThrowExceptionForHR (Vol (). GetMasterVolumeLevelScalar (ud v)); return v; set Marshal.ThrowExceptionForHR (Vol (). SetMasterVolumeLevelScalar (værdi, System.Guid.Empty)); offentlig statisk bool Mute get bool mute; Marshal.ThrowExceptionForHR (Vol (). GetMute (out mute)); retur mute;  sæt Marshal.ThrowExceptionForHR (Vol (). SetMute (værdi, System.Guid.Empty));  '@ -Verbose While ($ true) #Rengør alle begivenheder i den aktuelle session siden dens i en uendelig sløjfe, 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-Event -OutVariable Event | Out-Null $ EventType = $ Event.sourceargs.newevent | 'Sorter-objekt TIME_CREATED-Aftagende | 'Select-Object EventType -ExpandProperty EventType -First 1 # Betinget logik til at håndtere, hvornår man skal slå lyden fra / deaktivere maskinen ved hjælp af Audio API If ($ EventType -ek 3) [Audio] :: Mute = $ true Skriv-verbose "Dempet [$ ((Get-Date) .tostring ())] " oarsif ($ EventType -eq 2 -og [Audio] :: Mute -eq $ true) [Audio] :: Mute = $ falsk Skriv-verbose" Ikke-slået [$ ((Get-Date) .tostring ())] "

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 Øge din produktivitet med Windows PowerShell-scripts Øge din produktivitet med Windows PowerShell-scripts Hvad hvis du kunne bringe produktiviteten af ​​Linux over til Windows? De fleste Linux-distros leveres pakket med det kraftige Bash-shell. PowerShell er en lige så kraftig terminal til Windows. . Der er masser af PowerShell-cmdlets, der forbedrer din Windows-oplevelse Powershell Cmdlets, der forbedrer dine Windows-administratorfærdigheder Powershell Cmdlets, der forbedrer din Windows-administratorfærdigheder Powershell 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. .

Billedkredit: peus / Depositphotos




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.