Windows'ta Kulaklık Çıkarırken Sesi Otomatik Olarak Susturma

  • Edmund Richardson
  • 0
  • 1259
  • 344
reklâm

Kulaklığınızı her çektiğinizde bilgisayarınızın ses çıkışını otomatik olarak sessize almanız harika olmaz mıydı? Yanlışlıkla sabahın küçük saatlerinde arkadaşlarınızı uyandırmak ya da yanlışlıkla yanlışlıkla Britney Spears sevgisini halka açıklamaktan alıkoyacaktır..

Elbette, Ses Mikserini kullanarak hoparlörleri ve kulaklıkları durum bazında sessize alabilirsiniz. (Windows 10'da sesi kişiselleştirme hakkında daha fazla bilgi edinin.) Ama dürüst olmak gerekirse, bunu PowerShell ile otomatikleştirebileceğinizde bunu yapmanız gerekmez.

Akıllı telefonlar gibi kulaklıkları çıkardığınızda PC'nizin sesini otomatik olarak susturma.

Başlamak için Not Defteri'ni açın. Ardından, aşağıdaki kodu boş belgeye yapıştırın:

[cmdletbinding ()] Param () # System.Runtime.InteropServices kullanarak Ses API Ek Türü -TypeDefinition @ 'öğesine erişmek için tanımlar ekleme; [Guid ("5CDF2C82-841E-4546-9722-0CF74078229A"), Arabirim Türü (ComInterfaceType.InterfaceIsIUnknown)] arabirimi IAudioEndpointVolume // f (), g (),… kullanılmamış COM yöntemi yuvaları. Eğer bunu umursuyorsan tanımla int f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (float fLevel, System.Guid pguidEventContext); int j (); int GetMasterVolumeLevelScalar (dışa aktarma pfLevel); int k (); int l (); int m (); int n (); int SetMute ([MarshalAs (UnmanagedType.Bool)]] bMute, System.Guid pguidEventContext öğesini bool; int GetMute (çıkış bob pbMute);  [Guid ("D666063F-1587-4E43-81F1-B948E807363F"), Arabirim Türü (ComInterfaceType.InterfaceIsIUnknown)] arayüzü IMMDevice int Etkinleştir (ref System.Guid kimliği, int clsCtx, intestationParams outol, outout;  [Kılavuz (("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] arayüzü IMMDeviceEnumerator int f (); // Kullanılmayan int GetDefaultAudioEndpoint (int dataFlow, int rolü, IMMDevice bitiş noktası dışı);  [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] sınıf MMDeviceEnumeratorComObject  genel sınıf Audio statik IAudioEndpointVolume Vol () var enumerator = yeni MMDeviceEnpointeratorBOumBuNumBuEnmeratorComOBnumerator; IMMDevice dev = null; Mareşal .ThrowExceptionForHR (enumerator.GetDefaultAudioEndpoint (/ * eRender * / 0, / * eMultimedia * / 1, çıkış dev)); IAudioEndpointVolume epv = null; var epvid = typeof (IAudioEndpointVolume) .GUID; Mareşal. ThrowExceptionForHR (dev.Activate (ref epvid, / * CLSCTX_ALL * / 23, 0, çıkış epv)); dönüş epv;  genel statik değişkenlik birimi get float v = -1; Marshal.ThrowExceptionForHR (Cilt (). GetMasterVolumeLevelScalar (çıktı v)); return v; set Marshal.ThrowExceptionForHR (Cilt (). SetMasterVolumeLevelScalar (değer, System.Guid.Empty)); genel statik bool Mute get bool mute; Mareşal. ThrowExceptionForHR (Cilt (). GetMute (ses kapatma)); dönüş sessiz;  set Marshal.ThrowExceptionForHR (Cilt (). SetMute (değer, System.Guid.Empty));  '@ -Verbose While ($ true) # Geçerli oturumdaki tüm olayları sonsuz bir döngüde temizleyin, döngü başladığında yeni bir başlangıç ​​yapmak için Get-Event | Remove-Event -ErrorAction SilentlyContinue # Etkinliği Kaydedin ve Tetiklenecek Etkinliğin Beklenmesi Register-WmiEvent -Class Win32_DeviceChangeEvent Bekle-Event -OutVariable Event | Out-Null $ EventType = $ Event.sourceargs.newevent | 'Sırala-Nesne TIME_CREATED-Azalan | 'Select-Object EventType -ExpandProperty EventType -First 1 # İşlenecek koşullu mantık, Ses API'sini kullanarak makinenin Sesini Açma / Sesini Açma / Açma ($ EventType -eq 3) [Ses] :: Mute = $ true Write-Verbose "Muted [$ ((Get-Date) .tostring ())] " elseif ($ EventType -eq 2 -ve [Ses] :: Sessiz -eq $ true) [Ses] :: Mute = $ false Yazma-Sırası" UnMuted [$ ((Get-Date) .tostring ())] "

Şimdi dosyayı PS1 formatında kaydetmeniz gerekiyor. Dosyayı Kaydet diyalog penceresine bakarken, Seçenk. Tüm dosyalar açılır menüden dosyayı arayıp AutoMute.ps1. Dosyanın adı önemli değil, bu yüzden hatırlaması kolay bir şey seçin..

Komut dosyasını etkinleştirmek için, yeni oluşturulan dosyayı sağ tıklayın ve Koşmak. Siz makineyi kapatana kadar kod etkin olacak.

Bu, PowerShell'in üretkenliğinizi artırabilmesinin birçok yolundan sadece biridir. Windows PowerShell Komut Dosyaları ile Verimliliğinizi Artırın Windows PowerShell Komut Dosyaları ile Verimliliğinizi Artırın Peki ya Linux'un verimliliğini Windows'a getirebilseydiniz? Çoğu Linux dağıtımı güçlü Bash kabuğuyla paketlenmiştir. PowerShell, Windows için aynı derecede güçlü bir terminaldir. . Windows deneyiminizi geliştirecek bir çok PowerShell cmdlet'i var Windows Yönetici Becerilerinizi Geliştirecek Powershell Cmdlet'leri Windows Yönetici Becerilerinizi Geliştirecek Powershell Cmdletleri Powershell, eşit parçalar komut satırı aracı ve komut dosyası dilidir. Bilgisayarınızı yönetmek için kullandığınızla aynı komutlarla otomatikleştirme yeteneği verir. .

Görüntü Kredisi: peus / Depositphotos




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.