如何在 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/Vista]

編輯檔案類型、自動播放、預設程式設定 [Windows 7/Vista]

您是否想從 Windows 資源管理器上下文功能表中編輯程式和選項、更改文件類型和描述,以及進行一些高級更改?

與多台電腦分享剪貼簿內容

與多台電腦分享剪貼簿內容

如果您有一個大型辦公室或教室,需要頻繁共享連結、文件或大量文本,剪貼簿共享將會派上用場。

調整以最佳化SSD硬碟[Windows]

調整以最佳化SSD硬碟[Windows]

固態硬碟 (SSD) 是一項正在逐漸成為主流的新技術。與傳統硬碟相比,它速度更快,使用壽命更長。

如何在 Windows 10 和 11 中取得協助:10 個常見技術問題解決方案

如何在 Windows 10 和 11 中取得協助:10 個常見技術問題解決方案

了解如何透過這 10 種方法在 Windows 11 和 Windows 10 中取得協助。從「取得協助」應用到故障排除技巧,立即解決您的電腦問題。

AVG Antivirus 9 發布 – 免費版即將推出

AVG Antivirus 9 發布 – 免費版即將推出

AVG 終於發布了其防毒軟體的第 9 版,他們表示,與前幾代相比,它運行速度更快,功能也更強大。 Grisoft

使用 VLC 媒體播放器播放 ISO 磁碟映像格式

使用 VLC 媒體播放器播放 ISO 磁碟映像格式

即使在我寫了一篇詳細的新功能文章之後,VLC Media Player 仍然讓我驚喜不已。最近我發現 VLC Player 還可以播放 ISO 鏡像。

如何下載和觀看帶有字幕的 Dvdrip 電影

如何下載和觀看帶有字幕的 Dvdrip 電影

我的聽力有點問題,所以很難聽懂電影裡演員在說什麼。我通常看每部電影都會

在更新至 Chromium Edge 之前備份舊版 Edge 瀏覽器

在更新至 Chromium Edge 之前備份舊版 Edge 瀏覽器

升級到 Chromium Edge 後,舊版 Edge 瀏覽器也不用擔心遺失。請按照我們的指南進行備份,並確保兩個瀏覽器同時運作。

Cdex – 將音訊 CD 翻錄為 Mp3 或 Wav 格式

Cdex – 將音訊 CD 翻錄為 Mp3 或 Wav 格式

Cdex 是一款免費的開源工具,可從音訊 CD 中提取數據,並以 WAV 或 MP3 格式儲存檔案。您也可以翻錄音訊 CD

什麼是 Windows 7 來賓模式以及如何啟用它?

什麼是 Windows 7 來賓模式以及如何啟用它?

什麼是訪客模式?您是否曾經遇到過這樣的情況:朋友或同事在使用您的電腦時刪除了重要檔案或修改了某些系統