如何在 Windows 10 上拔下耳機時自動靜音

Windows 10 可以為不同的音頻設備保留單獨的音頻配置文件。對於您連接的每個音頻設備,您可以設置不同的音量級別,當設備連接時,音量將自動調整。當然,沒有人讓音頻設備一直處於靜音狀態。他們會增加或減少音量,但沒有人習慣性地將音頻設備靜音。

如果您在台式機上使用一副耳機,並且經常需要斷開它們的連接,您可以使用一個小的 PowerShell 腳本,它會在您拔下耳機時自動靜音。

這是手機所做的事情,即當您拔下耳機時,音樂會自動停止。這背後的邏輯是,您要么聽完了音樂,要么不小心取下了耳機,而您需要一種快速的方法將其關閉。該腳本基本上是由GEEKEEFYPrateek Singh 根據相同的原則 編寫的

如何在 Windows 10 上拔下耳機時自動靜音

自動靜音

打開記事本並粘貼以下內容;

[cmdletbinding()] Param() #使用System.Runtime.InteropServices添加訪問Audio API的定義 Add-Type -TypeDefinition @'; [Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface IAudioEndpointVolume { // f(), g(), ...是未使用的COM方法槽。如果你關心 int f(); 定義這些 int g(); int h(); 國際我(); int SetMasterVolumeLevelScalar(float fLevel, System.Guid pguidEventContext); int j(); int GetMasterVolumeLevelScalar(out float pfLevel); int k(); int l(); 國際米(); 整數 n(); int SetMute([MarshalAs(UnmanagedType.Bool)] bool bMute, System.Guid pguidEventContext); int GetMute(out bool pbMute); } [Guid("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface IMMDevice { int Activate(ref System.Guid id, int clsCtx, int activationParams, out IAudioEndpointVolume aev); } [Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface IMMDeviceEnumerator { int f(); // 未使用的 int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMDevice endpoint); } [ComImport, Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")] class MMDeviceEnumeratorComObject { } public class Audio { static IAudioEndpointVolume Vol() { var enumerator = new MMDeviceEnumeratorComObject() as IMMDeviceEnumerator; IMMDevice dev = null; Marshal.ThrowExceptionForHR(enumerator.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)); 返回 epv; } 公共靜態浮點量 { 得到 {float v = -1; Marshal.ThrowExceptionForHR(Vol().GetMasterVolumeLevelScalar(out v)); return v;} set {Marshal.ThrowExceptionForHR(Vol().SetMasterVolumeLevelScalar(value, System.Guid.Empty));} } public static bool Mute { get { bool mute; } Marshal.ThrowExceptionForHR(Vol().GetMute(out mute)); 返回靜音;} set { Marshal.ThrowExceptionForHR(Vol().SetMute(value, System.Guid.Empty)); } } } '@ -Verbose While($true) { #清除當前會話中的所有事件,因為它處於無限循環中,以便在循環開始時重新開始 Get-Event | Remove-Event -ErrorAction SilentlyContinue #註冊事件並等待事件被觸發 Register-WmiEvent -Class Win32_DeviceChangeEvent Wait-Event -OutVariable Event |Out-Null $EventType = $Event.sourceargs. 新活動 | ` Sort-Object TIME_CREATED -Descending | ` Select-Object EventType -ExpandProperty EventType -First 1 #要處理的條件邏輯,何時使用音頻 API 將機器靜音/取消靜音 If($EventType -eq 3) { [Audio]::Mute = $true Write-Verbose "Muted [$((Get-Date).tostring())]" } elseif($EventType -eq 2 -and [Audio]::Mute -eq $true) { [Audio]::Mute = $false Write-Verbose "取消靜音 [$((Get-Date).tostring())]" } }

使用 PS1 文件擴展名保存它。確保從文件類型下拉列表中選擇“所有文件”。給文件起一個名字,讓你一眼就能看出它的作用。將它保存在不太可能意外刪除的地方,但也保存在需要時可以輕鬆找到的地方。

運行腳本

PowerShell 不能只是自動運行腳本。有一個內置的安全措施可以防止它這樣做,但有一種方法可以解決它。我們有一篇關於如何做到這一點的詳細文章。按照說明自動運行您剛剛創建的 PowerShell 腳本,並在每次啟動 PC 時使用計劃任務啟動腳本。

或者,您可以在引導系統時手動運行腳本。我使用它的時間不到 30 分鐘,我不知道以前沒有它我是如何生活的。

Leave a Comment

檢查您的電腦是否與 Oculus Rift 相容

檢查您的電腦是否與 Oculus Rift 相容

Oculus Rift 是市場上最有前景的 VR 頭戴裝置之一。雖然這款設備已經推出好幾年了,但現在終於可以買到了。

在 iPad 或 Android 平板電腦上玩 Windows 遊戲

在 iPad 或 Android 平板電腦上玩 Windows 遊戲

PC遊戲很少有行動版本,這是可以預料的,因為行動裝置無法提供與桌面裝置相同的體驗。即使你

在 Windows 7 中安裝未簽署的驅動程式

在 Windows 7 中安裝未簽署的驅動程式

如果您已從 Windows XP 移轉到 Windows 7,可能會遇到一些未簽署的驅動程式錯誤。本文將為您提供一些工具來刪除此類錯誤。

監控 Windows 登錄項目的即時更改

監控 Windows 登錄項目的即時更改

Registry Live Watch 是一款小型實用程序,可監視您定義的任何登錄項目。您可以將其最小化到系統托盤,它會立即

桌面獵人:使用定義的圖像壓縮等級截取螢幕截圖

桌面獵人:使用定義的圖像壓縮等級截取螢幕截圖

使用 Desktop Hunter 充分利用您的螢幕截圖。輕鬆截取並整理螢幕截圖,用於教學和指南。

再做一次:Windows 自動化工具重複操作

再做一次:Windows 自動化工具重複操作

Do It Again 是一款高效的自動化工具,它允許使用者自動執行一組操作或任務,以便快速執行它們,而無需遵循

PDF2Printer:在 Windows 8 中將列印選項新增至 PDF 上下文功能表

PDF2Printer:在 Windows 8 中將列印選項新增至 PDF 上下文功能表

想要在 Windows 8 中列印 PDF 文件?不妨試試 PDF2Printer,它是一款便捷的應用程序,可讓您輕鬆列印。

透過免費 PC 審計查看完整的系統、軟體和硬體信息

透過免費 PC 審計查看完整的系統、軟體和硬體信息

您是否購買了新電腦,想查看一些系統信息,或者想了解已安裝軟體的信息?為了

如何在 Windows 桌面上建立網站或電子郵件快捷方式

如何在 Windows 桌面上建立網站或電子郵件快捷方式

如果您經常訪問某個網站,您可以為該網站建立桌面快捷方式,這樣無需打開瀏覽器即可輕鬆訪問

如何在安全模式下執行 Firefox

如何在安全模式下執行 Firefox

如果您安裝了導致 Firefox 不穩定的主題或擴充程序,則無需一遍又一遍地重新安裝瀏覽器來解決問題