はじめに
大分遅ればせながら、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と表示できるようになりました。