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 25H2の起動可能なUSBインストールメディアを作成する方法

Windows 11 25H2の起動可能なUSBインストールメディアを作成する方法

Windows 11 25H2の起動可能なUSBインストーラーを作成するには、Rufus、Ventoy、コマンドプロンプト、およびメディア作成ツールを使用できます。その方法は次のとおりです。

Windows 11 用ビルド 26220.7653 (KB5074157) には、新しいダークモードの調整機能が含まれています (開発者版、ベータ版)

Windows 11 用ビルド 26220.7653 (KB5074157) には、新しいダークモードの調整機能が含まれています (開発者版、ベータ版)

Windows 11 用の KB5074157 (ビルド 26220.7653) は、ダークモードを改善し、WebP 壁紙のサポートを追加し、タスクバー、スタート、Bluetooth などの問題を修正します。

Windows 11アップデートKB5074109は大失敗だった – 主な問題点一覧

Windows 11アップデートKB5074109は大失敗だった – 主な問題点一覧

Windows 11向けの2026年1月アップデートであるKB5074109は、クラッシュ、起動失敗、Outlookの問題、アンインストールエラーを引き起こし、ユーザーはそれを削除せざるを得なくなった。

ChatGPTの会話がGoogle検索に表示されないようにする方法

ChatGPTの会話がGoogle検索に表示されないようにする方法

ChatGPTの会話がGoogle検索に表示されないようにするには、公開されているChatGPTの共有リンクを確認して削除する方法をご紹介します。

Windows 11にWindows Subsystem for Android(WSA)をインストールする方法

Windows 11にWindows Subsystem for Android(WSA)をインストールする方法

Windows 11でAndroidアプリを実行するには、Microsoft StoreまたはPowerShellを使用してWindows Subsystem for Android(WSA)をインストールできます。手順は以下のとおりです。

ChatGPTがAIトレーニングに個人データを使用するのを止める方法

ChatGPTがAIトレーニングに個人データを使用するのを止める方法

OpenAIはデフォルトでChatGPTの会話内容をAIの学習のために収集しますが、プライバシー保護のためにこの機能を無効にする方法をご紹介します。

Windows 11向けビルド27913が、設定アプリの変更を含むリリース(Canary版)として公開されました。

Windows 11向けビルド27913が、設定アプリの変更を含むリリース(Canary版)として公開されました。

Windows 11ビルド27913(Canary)では、設定UIが再設計され、Vistaの起動音が復元され、黒画面の壁紙の問題が解決されるなど、さまざまな改善が施されています。

Windows 11 24H2 リリース向けビルド 26120.4733 (KB5062651) (変更点あり) (ベータ版)

Windows 11 24H2 リリース向けビルド 26120.4733 (KB5062651) (変更点あり) (ベータ版)

Windows 11 用ビルド 26120.4733 (KB5062651) がベータ チャネルでリリースされ、新しい 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を使用してアプリをインストールする方法

Windows 10では、wingetコマンドを使用してアプリをインストールできるようになりました。以下は、Windowsパッケージマネージャーを使用してアプリをインストールする手順です。