如何在 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

如何根據你需要起床的時間獲取就寢時間提醒

如何根據你需要起床的時間獲取就寢時間提醒

如何根據你需要起床的時間獲取就寢時間提醒

如何透過手機關閉電腦

如何透過手機關閉電腦

如何透過手機關閉電腦

修復 Windows 7 更新

修復 Windows 7 更新

Windows 更新基本上與註冊表以及不同的 DLL、OCX 和 AX 檔案協同工作。如果這些檔案損壞,Windows 更新的大多數功能都會失效。

Returnil Virtual System 2010 – 虛擬化您的系統

Returnil Virtual System 2010 – 虛擬化您的系統

最近,新的系統保護套件如雨後春筍般湧現,它們都帶來了另一種防毒/垃圾郵件檢測解決方案,如果你幸運的話

如何在 Windows 10/11 上開啟藍牙

如何在 Windows 10/11 上開啟藍牙

了解如何在 Windows 10/11 上開啟藍牙。藍牙必須處於開啟狀態才能確保您的藍牙裝置正常運作。別擔心,很簡單!

PDF Rider 是一款優秀的開源 PDF 管理軟體

PDF Rider 是一款優秀的開源 PDF 管理軟體

之前,我們評測過 NitroPDF,這是一款優秀的 PDF 閱讀器,它還允許用戶將文件轉換為 PDF 文件,並提供合併和分割 PDF 等選項

使用文字清理器清理文字文件

使用文字清理器清理文字文件

您是否收到過包含冗餘垃圾字元的文件或文字檔案?文中是否包含大量星號、連字號、空格等?

Windows 7 工作列中的 Google 快速搜尋框

Windows 7 工作列中的 Google 快速搜尋框

很多人問我關於 Windows 7 工作列上「開始」按鈕旁邊的 Google 小矩形圖示的問題,所以我最終決定發布這篇文章

修復 Windows 7 中的 uTorrent

修復 Windows 7 中的 uTorrent

uTorrent 是目前最受歡迎的種子下載桌面用戶端。雖然它在 Windows 7 上對我來說運行完美,但有些人遇到

兩款提醒你放鬆眼睛的實用工具

兩款提醒你放鬆眼睛的實用工具

每個人在使用電腦時都需要經常休息,如果不休息,你的眼睛很可能會凸起來(好吧,不是凸起來)