[Windows Mobile]Advanced/W-ZERO3[es]でのBluetooth PAN接続/切断支援MortScript
先日、Advanced/W-ZERO3[es]によるBluetooth PANについてエントリしましたが、ワンアクションで接続、切断できるようにするため、久しぶりにMortScriptを書いてみました。
関連エントリ:[N810]NOKIA N810とAdvanced/W-ZERO3[es]でBluetooth PAN
Bluetooth PAN切断中にこのMortScriptを起動すると接続を、接続中に起動すると切断します。(たまに動作が変なことも?)
僕はSortInchKeyで、このスクリプトをSoftKey2のダブルクリックに設定しています。
動画編集の練習とYouTubeデビューをかねて、デモを作ってみました。
前半: トグル動作の説明
後半: Bluetooth PANの確立〜NOKIA N810でのブラウジングまでの一連の動作
前半、なぜか額縁になっちゃってます。なんでだろ……。
ダウンロード
自分でも使ってますが、無保証です。
ライセンスは……そんなもんはありません。自由にしてください。
インストールと使い方
前回のエントリを参照の上Bluetooth PANを設定。MortScriptのPPC版をインストールします。個別にダウンロードするようにはなっておらず、zipの中にOS別に数種類入っています。
僕はページ下部のリンクTemporaryからたどってダウンロードできるV4.11b7を使っています。
あとはスクリプトをダウンロードして実行するだけですが、実行に手間をかけていては本末転倒ですので、最も効率的な実行方法を模索してください。
前述の通り、僕はSortInchKeyで、このスクリプトをSoftKey2のダブルクリックに設定しています。
画面の解像度等に依存するため、RealWVGA化や、フォントサイズの変更などをしていると動かないと思います。
ソースコード
サブルーチン「POff」の「PowerOff」はコメントアウトしていますが、外してもいいかも?
# # Helper script for ICS via Bluetooth PAN # # Use MortScript V4.11b7 # ######### Global Variable definition ######### Global(AppName, AppPath, MannerMode) AppName = "インターネット共有" AppPath = "\Windows\IntShrUI.exe" MannerMode = RegRead("HKCU",\ "\Software\Sharp\PhoneStatus",\ "Status3") ######### Entry Point ######### Call("Main") ######### Subroutine definition ######### # メイン Sub Main # インターネット共有を起動し # 前面に出るまで待つ Call("Activate") # Bluetooth PANの項目が現れるまで # タイムラグがあるので待つ Sleep(1000) # 接続が無い状況を確認 IF(WindowText(60, 120) eq "切断完了") # Bluetooth PANの存在を確認 Call("BluetoothCheck") # 「接続」ボタンを押して、進捗確認 # SoftKeyの文字はWindowText()で # 読み取れないようなので、みなし Call("POn") Else # 接続中であることが想定されるので # 「切断」ボタンを押して、進捗確認へ # SoftKeyの文字はWindowText()で # 読み取れないようなので、みなし Call("POff") EndIF EndSub # インターネット共有の起動と起動チェック Sub Activate # インターネット共有の起動 Run(AppPath) # インターネット共有が前面になるのを待つ WaitForActive(AppName, 4) # 起動に失敗しているようなら終了 If(NOT wndExists(AppName)) Call("ErrorSound") Message(AppName & "が^CR^^LF^起動できないようです") Exit EndIf EndSub # Bluetooh PANの有無のチェック Sub BluetoothCheck btstatus = RegRead("HKLM",\ "\System\State\Hardware",\ "Bluetooth") Switch(btstatus) Case(0, 8) Call("ErrorSound") Message("Bluetoothが^CR^^LF^使用不能です") Exit EndSwitch # Bluetooth PANが無ければ IF(WindowText(60, 240) eq "USB") # リストボックスの下の項目を選択してみる MouseClick(AppName, 60, 240) SendSpecial("Down") SendSpecial("CR") Sleep(100) # それでもBluetooth PANでなければ終了 IF(WindowText(60, 240) eq "Bluetooth PAN") # nop Else Call("ErrorSound") Message("Bluetooth PANが^CR^^LF^見つからないようです") Exit EndIf EndIf EndSub # 「接続」ボタン押しと、その後の処理 Sub POn Call("WSIMCheck") SendSpecial("LeftSoft") # W-SIMの接続が確立するまで待つ # 20秒でタイムアウト Repeat(20) status = RegRead("HKLM",\ "\System\State\Connections\Modem",\ "Count") If(status = 0) Sleep(1000) EndIF EndRepeat If(status = True) # 接続が確立したら ToggleDisplay(off) If(NOT MannerMode) PlaySound("\Windows\Alarm3.wav") EndIf Call("RepeatVibrate", 1) Else # 接続が確立しなかったら Call("ErrorSound") Call("RepeatVibrate", 2) EndIf EndSub # 「切断」ボタン押しと、その後の処理 Sub POff SendSpecial("LeftSoft") ToggleDisplay(off) If(NOT MannerMode) PlaySound("\Windows\Infend.wav") EndIf Call("RepeatVibrate", 3) #PowerOff EndSub Sub RepeatVibrate IF(argc = 1 and argv[1] > 0) For i = 1 to argv[1] Vibrate(200) IF(i < argv[1]) Sleep(300) EndIF Next EndIF EndSub Sub WSIMCheck strength = RegRead("HKCU", \ "Software\Sharp\ShPhoneLib", \ "RFStrength") If(strength < 2 || strength > 6) Call("ErrorSound") Message("電界強度が^CR^^LF^弱いようです") Exit EndIf EndSub Sub ErrorSound If(NOT MannerMode) PlaySound("\Windows\spl_outofrange.wav") EndIf EndSub
« [Windows Mobile]Windows Mobile向けQKC 1.0 (Quick KANJI code Converter C Version 1.0)正式公開 | Main | [N810]Advanced/W-ZERO3[es]をNOKIA N810のモデムとして認識させるKernel Module »
Recent Comments