如何在 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 分鐘,我不知道以前沒有它我是如何生活的。

留下評論

如何建立可啟動的 Windows 11 25H2 USB 安裝介質

如何建立可啟動的 Windows 11 25H2 USB 安裝介質

要建立 Windows 11 25H2 可啟動 USB 安裝程序,您可以使用 Rufus、Ventoy、命令提示字元和媒體建立工具,以下是具體操作方法。

Windows 11 版本 26220.7653 (KB5074157) 帶來了新的深色模式調整(開發版、測試版)

Windows 11 版本 26220.7653 (KB5074157) 帶來了新的深色模式調整(開發版、測試版)

KB5074157(版本 26220.7653)適用於 Windows 11,改進了深色模式,增加了 WebP 壁紙支持,並修復了任務欄、開始功能表、藍牙等問題。

Windows 11 更新 KB5074109 簡直是一場災難——主要問題列表

Windows 11 更新 KB5074109 簡直是一場災難——主要問題列表

KB5074109 是 Windows 11 的 2026 年 1 月更新,它導致了崩潰、啟動失敗、Outlook 問題和卸載錯誤,迫使用戶將其刪除。

如何阻止 ChatGPT 對話出現在 Google 搜尋中

如何阻止 ChatGPT 對話出現在 Google 搜尋中

要防止您的 ChatGPT 對話出現在 Google 搜尋中,請檢查並刪除公開共享的 ChatGPT 鏈接,方法如下。

如何在 Windows 11 上安裝適用於 Android 的 Windows 子系統 (WSA)

如何在 Windows 11 上安裝適用於 Android 的 Windows 子系統 (WSA)

您可以透過 Microsoft Store 或 PowerShell 安裝適用於 Android 的 Windows 子系統 (WSA),從而在 Windows 11 上執行 Android 應用程式。方法如下。

如何阻止 ChatGPT 將您的個人資料用於 AI 訓練

如何阻止 ChatGPT 將您的個人資料用於 AI 訓練

OpenAI 預設會收集您的 ChatGPT 對話內容用於 AI 訓練,以下是如何停用此功能以更好地保護隱私的方法。

Windows 11 版本 27913 發布了「設定」應用程式變更(Canary 版)

Windows 11 版本 27913 發布了「設定」應用程式變更(Canary 版)

Windows 11 版本 27913(Canary)帶來了重新設計的設定介面,恢復了 Vista 啟動聲音,修復了黑屏桌布問題等等。

適用於 Windows 11 24H2 版本(Beta 版)的版本 26120.4733 (KB5062651),包含更改

適用於 Windows 11 24H2 版本(Beta 版)的版本 26120.4733 (KB5062651),包含更改

Windows 11 版本 26120.4733 (KB5062651) 在 Beta 頻道中引入了新的 AI 圖像描述、應用程式權限重新設計以及管理員保護功能。

適用於 Windows 11 25H2 的版本 26200.5702 (KB5062653) 帶來了新功能(開發版)

適用於 Windows 11 25H2 的版本 26200.5702 (KB5062653) 帶來了新功能(開發版)

Windows 11 25H2 版本 26200.5702 (KB5062653) 帶來了 AI 映像描述、新的管理員安全功能、重新設計的權限對話方塊等。

如何在 Windows 10 上使用 Winget 安裝應用程式

如何在 Windows 10 上使用 Winget 安裝應用程式

現在您可以使用 winget 命令在 Windows 10 上安裝應用程序,以下是使用 Windows 軟體套件管理器執行此操作的步驟。