İlan
Kulaklığınızı çıkardığınızda bilgisayarınızın ses çıkışını otomatik olarak sessize alabilmeniz harika olmaz mıydı? Düz arkadaşlarınızı sabahın küçük saatlerinde yanlışlıkla uyandırmanızı veya yanlışlıkla Britney Spears'a olan sevginizi halka açığa çıkarmanızı önler.
Tabii ki, Ses Düzeyi Karıştırıcısını kullanarak hoparlörleri ve kulaklıkları duruma göre kapatabilirsiniz. (Windows 10'da sesi özelleştirme hakkında daha fazla bilgi edininAma dürüst olmak gerekirse, bunu PowerShell ile otomatikleştirdiğinizde bunu yapmanız gerekmez.
Akıllı telefonlar gibi kulaklıkları çıkardığınızda PC'nizin sesini otomatik olarak nasıl kapatacağınız aşağıda açıklanmıştır.
Başlamak için Not Defteri'ni açın. Ardından, aşağıdaki kodu boş belgeye yapıştırın:
[Cmdletbinding ()] Param () # Ses API'sine erişmek için tanımları ekleme. Add-Type -TypeDefinition @ ' Sistem kullanarak. Çalışma süresi. InteropServices; [Kılavuz ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] arayüz IAudioEndpointVolume { // f (), g (),... kullanılmayan COM yöntemi yuvalarıdır. Eğer önemsiyorsanız bunları tanımlayın. int f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (şamandıra fLevel, Sistem. Guid pguidEventContext); int j (); int GetMasterVolumeLevelScalar (float pfLevel çıkışı); int k (); int l (); int m (); int n (); int SetMute ([MarshalAs (Yönetilmeyen Tür). Bool)] bool bMute, Sistem. Guid pguidEventContext); int GetMute (dışarı bool pbMute); } [Kılavuz ("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] arayüz IMMDevice { int Etkinleştir (ref Sistemi). Guid id, int clsCtx, int activationParams, dışarı IAudioEndpointVolume aev); } [Kılavuz ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] arayüz IMMDeviceEnumerator { int f (); // Kullanılmadı. int GetDefaultAudioEndpoint (int dataFlow, int rolü, dışarı IMMDevice uç noktası); } [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] sınıf MMDeviceEnumeratorComObject {} herkese açık sınıf Ses { statik IAudioEndpointVolume Vol () { var enumerator = IMMDeviceEnumerator olarak yeni MMDeviceEnumeratorComObject (); IMMDevice dev = null; Polis. ThrowExceptionForHR (listeleyicisi. GetDefaultAudioEndpoint (/ * eRender * / 0, / * eMultimedia * / 1, çıkış cihazı)); IAudioEndpointVolume epv = null; var epvid = typeof (IAudioEndpointVolume) .GUID; Polis. ThrowExceptionForHR (dev. Etkinleştir (ref epvid, / * CLSCTX_ALL * / 23, 0, epv çıkışı)); dönüş epv; } halka açık statik şamandıra Hacmi { get {float v = -1; Polis. ThrowExceptionForHR (Cilt (). GetMasterVolumeLevelScalar (çıkış v)); dönüş v;} {Mareşal. ThrowExceptionForHR (Cilt (). SetMasterVolumeLevelScalar (değer, Sistem. Guid. Boş));} } genel statik bool Sessiz { {bool sessiz; Polis. ThrowExceptionForHR (Cilt (). GetMute (ses kapatma)); sessiz kapatma; } {Mareşal. ThrowExceptionForHR (Vol (). SetMute (değer, Sistem). Guid. Boş)); } } } '@ -Verbose While ($ true) { # Döngü başladığında yeni bir başlangıç yapmak için sonsuz döngüde olduğundan geçerli oturumdaki tüm olayları temizleyin. Etkinlik Al | Remove-Event -ErrorAction SilentlyContinue # Etkinliğin Kaydı ve etkinliğin tetiklenmesi bekleniyor. Register-WmiEvent -Class Win32_DeviceChangeEvent. Wait-Event -OutVariable Etkinliği | Out-Null $ EventType = $ Event.sourceargs.newevent | ' Sıralama Nesnesi TIME_CREATED -Azalan | ' Select-Object EventType -ExpandProperty EventType -First 1 # Kullanılacak koşullu mantık, Ne zaman Ses API'sı kullanılarak makinenin Sesi kapatılır / Sesi kapatılır. Eğer ($ EventType -eq 3) { [Ses]:: Sessiz = $ true. Write-Verbose "Sessiz [$ ((Get-Date) .tostring ())]" } elseif ($ EventType -eq 2 -ve [Ses]:: Sessiz -eq $ true) { [Ses]:: Sessiz = $ false. Write-Verbose "Açılmamış [$ ((Get-Date) .tostring ())]" } }
Şimdi dosyayı PS1 formatında kaydetmeniz gerekiyor. Dosyayı Kaydet iletişim kutusuna bakarken, Tüm dosyalar açılır menüden ve dosyayı arayın AutoMute.ps1. Dosyanın kendisi ö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 Çalıştırmak. Komut dosyası, siz makinenizi kapatana kadar etkin olacaktır.
Bu birçok yoldan sadece biri PowerShell üretkenliğinizi artırabilir Windows PowerShell Komut Dosyaları ile Verimliliğinizi ArtırınLinux'un verimliliğini Windows'a getirebilirseniz ne olur? Çoğu Linux dağıtımı güçlü Bash kabuğu ile birlikte gelir. PowerShell, Windows için aynı derecede güçlü bir terminaldir. Daha fazla oku . Bir sürü Windows deneyiminizi geliştirecek PowerShell cmdlet'leri Windows Yönetici Becerilerinizi Geliştirecek Powershell Cmdlet'leriPowershell eşit parça komut satırı aracı ve komut dosyası dilidir. Bilgisayarınızı yönetmek için kullandığınız komutlarla otomatikleştirmenizi sağlar. Daha fazla oku .
Görüntü kredi: peus / Depositphotos
Dan, Meksika'da yaşayan bir İngiliz gurbetçisidir. MUO'nun kardeş sitesi Blocks Decoded için Yönetici Editördür. Çeşitli zamanlarda MUO için Sosyal Editör, Yaratıcı Editör ve Finans Editörlüğü yaptı. Onu her yıl Las Vegas'taki CES'deki gösteri katında dolaşırken bulabilirsiniz (halkla ilişkiler, uzatma!) Ve birçok sahne arkası sitesi yapıyor…