blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

Bluetooth の機器に自動的に接続するスクリプトを書いた

東芝Bluetooth 設定ソフトウェアを使用しているときで、Bluetooth の機器が一つしか設定されていないならば、それに対して自動的に接続する AutoHotkey 用スクリプトを書いた。このスクリプトを fenrir のコマンドで呼び出せば、キーボード操作のみで、bluetooth の機器に接続できる。
スクリプトは以下の通りだ。注意すべきなのは、My Scriptsの「タスクトレイアイコン操作」をダウンロードして、以下のスクリプトと同じフォルダに入れる必要があるということだ。また、AutoHotkey_L の unicode 版を使用しているならば、ダウンロードした「タスクトレイアイコン操作」の文字コードUTF-8 (BOM付き)に変換する必要もある。

;;; Bluetooth の機器に接続するスクリプト
;;; ライセンスは NYSL

;;; このスクリプトを実行すると、以下の処理を行う

;;; 1. タスクトレイに表示している TosBtMng.exe を左ダブルクリック
;;; 2. 「Bluetooth設定」画面を表示しているときに、Enter キーを押す

;;; 必要なもの
;;;「タスクトレイアイコン操作」(http://lukewarm.s101.xrea.com/myscripts/TaskTrayIcon.zip)
#include TaskTrayIcon.ahk


;;; 東芝の Bluetooth Manager の実行ファイル名を指定する
name=TosBtMng.exe
;;; マウスの左ボタンをダブルクリックする
action=0x203
;;; 最長監視時間を設定する
sec=10


cnt:=Tray_GetCount()
DetectHiddenWindows,On
Loop,%cnt%
{
    Tray_GetInfo(A_Index,hwnd,uid,msg,hicon)
    WinGet,pn,ProcessName,ahk_id %hwnd%

    if(pn=name)
    {
        PostMessage,%msg%,%uid%,%action%,,ahk_id %hwnd%
        DetectHiddenWindows,Off

        Loop,% sec
        {
            ;; 1 秒処理を停止する
            Sleep, 1000
            tooltip,% "残り " sec - A_Index "秒"
            IfWinExist, Bluetooth設定
            {
                ;; 設定画面を前面に表示する
                WinActivate

                ;; [Enter] を一回送信
                Send,{enter}

                ExitApp
            }
        }
    }
}

ExitApp