Windows10でヘッドフォンが接続されていないときにサウンドを自動的にミュートする方法

Windows 10は、オーディオデバイスごとに個別のオーディオプロファイルを保持できます。接続するオーディオデバイスごとに異なる音量レベルを設定でき、デバイスを接続すると、音量が自動的に調整されます。もちろん、オーディオデバイスを常にミュートしておく人は誰もいません。音量は増減しますが、オーディオデバイスを習慣的にミュートする人は誰もいません。

デスクトップでヘッドフォンを使用していて、それらを切断しなければならないことが多い場合は、ヘッドフォンのプラグを抜くと自動的にサウンドをミュートする小さなPowerShellスクリプトを使用できます。

これは携帯電話が行うことです。つまり、ヘッドホンを抜くと、音楽は自動的に停止します。この背後にある論理は、あなたが音楽を聴き終えたか、誤ってヘッドフォンを取り外したため、それをオフにする簡単な方法が必要であるということです。スクリプトは基本的に、GEEKEEFYのPrateekSinghによって同じ原則に基づいて作成され ました

Windows10でヘッドフォンが接続されていないときにサウンドを自動的にミュートする方法

サウンドを自動的にミュート

メモ帳を開き、以下を貼り付けます。

[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 i(); int SetMasterVolumeLevelScalar(float fLevel、System.Guid pguidEventContext); int j(); int GetMasterVolumeLevelScalar(out float pfLevel); int k(); int l(); int m(); int 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(); //未使用のintGetDefaultAudioEndpoint(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を返します。} public static float Volume {get {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。newevent | `Sort-ObjectTIME_CREATED-降順| `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" UnMuted [$((Get-Date).tostring())] "}}

PS1のファイル拡張子で保存します。[ファイルの種類]ドロップダウンから[すべてのファイル]を選択していることを確認してください。ファイルの機能が一目でわかる名前をファイルに付けます。誤って削除する可能性が低い場所だけでなく、必要に応じて簡単に見つけられる場所に保存してください。

スクリプトの実行

PowerShellは、スクリプトを自動実行するだけでは不十分です。組み込みのセキュリティ対策があり、それを防ぐことができますが、それを回避する方法があります。そのための詳細な記事があります。指示に従って、作成したPowerShellスクリプト自動実行し、スケジュールされたタスクを使用して、PCを起動するたびにスクリプトを開始します。

または、システムの起動時にス���リプトを手動で実行することもできます。私はそれを30分未満使用していますが、以前はそれなしでどのように生活していたのかわかりません。

コメントを残す

Windows 11 26H1 用の KB5079381 (ビルド 28020.1685) により、ストレージのクリーンアップが改善されます (Canary)

Windows 11 26H1 用の KB5079381 (ビルド 28020.1685) により、ストレージのクリーンアップが改善されます (Canary)

Windows 11 用の KB5079381 (ビルド 28020.1685) が、ファイルエクスプローラーでのファイル名変更時の音声入力機能とストレージクリーンアップの信頼性向上を含むアップデートとして、カナリアチャネルで展開されました。

Windows 11 26H2 用ビルド 26300.7965 (KB5079385) に管理者保護機能が追加されました (開発者向け)

Windows 11 26H2 用ビルド 26300.7965 (KB5079385) に管理者保護機能が追加されました (開発者向け)

Windows 11 用の KB5079385 (ビルド 26300.7965) が開発者向けチャネルに登場しました。この更新プログラムには、管理者保護、Bluetooth の共有オーディオ、およびファイルエクスプローラーの修正が含まれています。

Nano11 Builderを使用して、軽量版Windows 11 ISOファイルを作成する方法

Nano11 Builderを使用して、軽量版Windows 11 ISOファイルを作成する方法

Nano11 Builderスクリプトは、不要なソフトウェアやシステム機能を削除することで、テストや仮想マシンでの使用に適した、3GB未満の超軽量Windows 11 ISOを作成します。

Windows 10 ESU 用の KB5071546 (ビルド 19045.6691) が 2025 年 12 月の更新プログラムとしてリリースされます

Windows 10 ESU 用の KB5071546 (ビルド 19045.6691) が 2025 年 12 月の更新プログラムとしてリリースされます

KB5071546 (ビルド 19044.6691 および 19045.6691) は、最初の拡張セキュリティ更新プログラムの一部として、Windows 10 22H2 および 21H2 向けに修正プログラムとともにリリースされました。

Windows 11でシステムの復元ポイントを作成する方法

Windows 11でシステムの復元ポイントを作成する方法

Windows 11でシステムの復元ポイントを作成することで、予期せぬ問題からPCを保護し、設定や以前の正常な状態を復元できます。

Windows 11でRevo Uninstallerを使用してアプリを完全にアンインストールする方法

Windows 11でRevo Uninstallerを使用してアプリを完全にアンインストールする方法

Windows 11でRevo Uninstallerを使用して、アプリ、残存ファイル、レジストリエントリ、および削除しにくいプリインストールソフトウェアを完全に削除する方法を学びましょう。

Windows 10 から Windows 11 25H2 へのアップグレード方法

Windows 10 から Windows 11 25H2 へのアップグレード方法

Windows Update、ISOイメージ、またはインストールアシスタントを使用して、Windows 10からWindows 11 25H2へ無料でアップグレードする方法を、手順に沿って解説します。

自分のPCにWindows 11 25H2をインストールすべきでしょうか? はい、ただし慎重に進めてください。

自分のPCにWindows 11 25H2をインストールすべきでしょうか? はい、ただし慎重に進めてください。

Windows 11 25H2へのアップグレードについて、今すぐインストールすべきか待つべきかの理由、サポートサイクルの変更点、展開中に問題が発生するのを回避するためのヒントなどを解説します。

Windows 11 25H2は2025年9月30日に正式リリースされました – 今すぐPCにインストールしましょう

Windows 11 25H2は2025年9月30日に正式リリースされました – 今すぐPCにインストールしましょう

Windows 11 のバージョン 25H2 がリリースされ、Windows Update、インストール アシスタント、およびメディア作成ツールを通じて配信が開始されました。

Windows 10 ESU登録オプションが見つからない?マイクロソフトは、サポート終了前にPCにこのオプションが提供されると述べています。

Windows 10 ESU登録オプションが見つからない?マイクロソフトは、サポート終了前にPCにこのオプションが提供されると述べています。

Windows 10の拡張セキュリティ更新プログラムへの登録は段階的に展開されています。マイクロソフトによると、このオプションは2025年10月までにすべてのユーザーに表示される予定です。