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

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分未満使用していますが、以前はそれなしでどのように生活していたのかわかりません。


Minecraft Bedrock のバージョンとは何ですか?

Minecraft Bedrock のバージョンとは何ですか?

Minecraft は、ゲームをプレイできるすべてのプラットフォームで利用できます。これには、デスクトップ プラットフォーム、モバイル プラットフォーム、ゲーム コンソールが含まれます。

Drive Namer を使用して Windows のドライブ名を変更する

Drive Namer を使用して Windows のドライブ名を変更する

コンピュータに 2 つの DVD ライターがインストールされており、両方のドライブの文字は異なりますが、同じ名前 (つまり「DVD-RW」) が付いているとします。入る道はない

Screen2Exe – 無料のインスタント スクリーン ビデオ キャプチャ ソフトウェア

Screen2Exe – 無料のインスタント スクリーン ビデオ キャプチャ ソフトウェア

製品やソフトウェアの使用方法について、インスタント画面デモを誰かに見せたいですか? あるいは、オプションやサービスにアクセスする方法を誰かに教えたいかもしれません。

無料のパーソナライズされた写真カレンダーを作成する方法

無料のパーソナライズされた写真カレンダーを作成する方法

TKexe Kalendar (直接ダウンロード リンクは (https://www.tkexe.eu/kalender/install/setup_ca_en.exe) です) は、

Steam は Windows 10 Creators Update と互換性がありますか?

Steam は Windows 10 Creators Update と互換性がありますか?

Steam は Windows 10 Creators Update と互換性がありませんか?

Windows または macOS コンピュータでグラフィックス ドライバを再起動する方法

Windows または macOS コンピュータでグラフィックス ドライバを再起動する方法

グラフィックス ドライバーを再起動し、グラフィックス関連の望ましくない問題にスマートに対処する方法を学び、自分自身の PC トラブルシューティングの専門家になりましょう。

Windows でライブ キャプションをオフにする方法

Windows でライブ キャプションをオフにする方法

ライブ キャプションは、必要がない場合に画面に表示されると邪魔になる場合があります。これらの簡単な方法で無効にすることができます。

Media Center Studio – Windows Media Center のスタート メニュー項目をカスタマイズする

Media Center Studio – Windows Media Center のスタート メニュー項目をカスタマイズする

Windows Media Center は、エクストラ、写真 + ビデオ、音楽などに至るまで、さまざまなメニューにバンドルされた優れたツール セットを提供していますが、多くのユーザー

Windows サーバーを保護する方法

Windows サーバーを保護する方法

Windows Server を初めて使用しますが、セキュリティを強化したいと考えていますか? このガイドが役に立ちます。Windows Server をセキュリティで保護する方法について説明します。

Windows 11で通知をオフにする方法

Windows 11で通知をオフにする方法

Windows 11 で迷惑な通知が継続的に表示されますか? ここでは、それらをオフにするために有効にすることができる、すばやくスマートなオプションを紹介します。