1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShellでBluetoothイヤホンの接続状態を取得する

Last updated at Posted at 2024-04-13

はじめに

大分遅ればせながら、Bluetoothイヤホンを購入しました。
PC上で接続されていることを、わかりやすく把握する方法がないか調べてみました。

ステータスの取得方法

以下のページを参考にさせていただきました。

(1) PowerShellの「Get-PnpDevice」でデバイスのIDを取得。
(2) 「Get-PnpDeviceProperty」で詳細のステータスを取る。

という方法です。

実際のスクリプト

「{83DA6326-97A6-4088-9453-A1923F573B29} 15」という謎のKeyを参照していますが、実際に接続したり切ったりして、KeyNameとDataの値の変化見てみました。

スクリプト.ps1
 $devs = Get-PnpDevice | ? {$_.Class -like '*bluetooth*'} | ? { $_.FriendlyName -like 'デバイスの名前'}
 
 foreach($i in $devs){
    $iProps = Get-PnpDeviceProperty -InstanceId $i.InstanceId 

    foreach($j in $iProps){
        if($j.KeyName -eq '{83DA6326-97A6-4088-9453-A1923F573B29} 15'){
            if( $j.Data -eq "True" ){
                Write-Output "Connected"
            }
            else {
                Write-Output "Disconnected"
            }
        }
     }
 }

デスクトップへの表示

RainmeterでPowerShellを実行してステータスを拾って表示します。

表示する画像は以下から適当なものをダウンロードして、iniファイルと同じフォルダへ、Connected.pngとDisconnected.pngとして保存しました。

rainmeter.ini
[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1

[MeasureBluetoothStatus]
Measure=Plugin
Plugin=PowershellRM
Line=スクリプトへのパス\スクリプト名称.ps1

[MeterIcon]
Meter=Image
MeasureName=MeasureBluetoothStatus
X=0
Y=0
W=30
H=30
ImageName=%1.png

[MeterString]
Meter=STRING
X=35
Y=2
W=100
H=20
FontSize=10
FontColor=225,225,225,225
AntiAlias=1
Text=表示用のデバイス名(固定)

[MeterBluetoothStatus]
Meter=STRING
X=35
Y=18
W=100
H=20
FontSize=8
FontColor=200,200,200,200
AntiAlias=1
MeasureName=MeasureBluetoothStatus

完成した形

イヤホンをケースから取り出すと接続されてConnectedになり、収めて接続が切れるとDisconnectと表示できるようになりました。

image.png

image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?