バチコーン

会社から帰ってきてからちょいとフレッタで外へ。

聖蹟桜ヶ丘の古本屋へ行った後、なんとなく聖蹟桜ヶ丘の丘の上にふらふらと。
そーいえば、聖蹟桜ヶ丘から下りるのに今日は逆側へ行ってみた。下りきったところでどうもこんな地下道が

最初スルーしたんですが、先に道が無くて結局ココを下ることに。
結構下って、大きい道の反対側の下側に出ました。なんだかすげえな。ていうかこんな道路のレイアウトしか出来なかったのか(^^;

真ん中の山が聖蹟桜ヶ丘ですな。
つか速度・・
軽く1時間ちょいで23kmほど。
さてS11HTですが、BluetoothPANで接続するのが楽しいわけですが、PAN接続の場合のアレな点は、接続前にS11HTのBluetoothをONにする。インターネット共有をONにする。
という手順があるのは、まぁいいんですが、その状態でバッグの中にほーっておけば、ノートからいつでもPAN接続可能です。
しかし、一回接続して、切断すると、S11HTの方のインターネット共有がOFFになるので、また接続するときにはS11HT本体を操作する必要があるのです。
BluetoothDUNを使用してダイアルアップにするとそういった手間はないんですが、Pushメール使ってる時はそっちがモデムを掴んでいるらしくDUN使えないし、その逆もしかり。
なので、いつでも接続出来る環境構築のために、WMWifirouterの導入を考えていたのですが、WLANだと電気食いそうだし、PSPとかで接続する予定もないのでいまいち躊躇してたのです。
インターネット共有がOFFになったら勝手にONしてくれるよーなツールがないもんかと探してたんですが、無かったので、あんまり気が進まなかったけどMortScriptを使ってみることに。
まぁ結果、それなりに動くものが出来たっぽい(^^;
やってることは
・BTがOFFなら>CommMgrを起動してBTをON
・インターネット共有がOFFなら
>インターネット共有が起動していないなら起動
>インターネット共有をON
まぁそんだけといえばそんだけ(^^;
デフォルトでは、スクリプト終了時に、20秒後に再度スクリプトが実行されるようになっています。また、スクリプト起動時にBluetoothがOFFになっていたら、BluetoothをONにしてチェックを開始するか、スクリプトを終了するかの問いが出ます。
ので、チェックを終了させたい時はBluetoothをOFFにすればOKと。
ただ、こーやって回すとサスペンドに入らないんだよなー。
もっと上手い手はないもんかね。
とりあえず>コレ
まぁ初めて組んだスクリプトなんで大目に(^^;
つかソースの貼り付けができねえ(^^;
まいいか。



#このスクリプト実行のインターバル(秒)
chkInterval = 20
AppName = “インターネット共有”
AppPath = “\Windows\IntShrUI.exe”
#実際にはタイトルバー(キャプションバー?)を持たないようなので意味なし
ComAppName = “Comm Manager”
ComAppPath =”\Windows\CommManagerLink.exe”
thisFile = SystemPath( “ScriptPath” ) \ SystemPath( “ScriptName” ) & SystemPath( “ScriptExt” )
RemoveNotifications(thisFile)
btcflg = TRUE
#現在アクティブなウインドウ名をとっとく
pactwindow = ActiveWindow()
mmflg = FALSE
#BluetoothがOFFにされていたら終了するかどうか聞く
status = RegRead(“HKLM”, “System\State\Hardware\”, “Bluetooth”)
#↓レジストリの値が、BTOFFの時8だったので。環境違うと違うかも。
If(status = 8)
If(Question(“BluetoothがOFFです。ONにして接続し続けますか?”)=NO)
#インターネット共有が起動していたら閉じる
If(wndExists(AppName))
Minimize(AppName)
Close(AppName)
EndIf
Exit
EndIf
#実際にはCommManagerはタイトルバーが無いようで、wndWxistsは意味なし。
If(NOT wndExists(ComAppName))
#CommManager起動
Run(ComAppPath)
Sleep(1000)
btcflg = TRUE
EndIf
#実際にはCommManagerはタイトルバーが無いようで、WndActiveもShowもWait~も失敗する。
If(WndActive(ComAppName)=FALSE)
# Show(ComAppName)
# WaitForActive(ComAppName, 10)
#CommManagerの、Bluetoothボタンの位置(大体)をクリック
MouseClick(100,90)
Sleep(4000)
#左ソフトボタンを押す
#うちのマシンは左ソフトボタン1回目でCTRL、2回目でソフトボタン押下に
#なってるので、LeftSoftを2回送信してますが、通常は1回でOKなので
#普通の設定の人は一個消してください。
SendSpecial(“LeftSoft”)
Sleep(200)
SendSpecial(“LeftSoft”)
mmflg = TRUE
EndIf
EndIf
#インターネット共有が起動してなかったら起動する?
If(NOT wndExists(AppName))
Run(AppPath)
Sleep(1000)
mmflg = TRUE
EndIf
#インターネット共有の接続状態の取得
status = RegRead(“HKLM”,”\System\State\Connectivity”,”InternetSharing”)
#インターネット共有が切断されていたら
If(status = 1)
#インターネット共有のウィンドウが隠れていたらアクティブにする。
If(WndActive(AppName)=FALSE)
Show(AppName)
WaitForActive(AppName, 10)
#マウスクリックしてインターネット共有のウィンドウにフォーカスを移す
MouseClick(AppName,100,100)
Sleep(200)
EndIf
#左ソフトキーを押す
#うちのマシンは左ソフトボタン1回目でCTRL、2回目でソフトボタン押下に
#なってるので、LeftSoftを2回送信してますが、通常は1回でOKなので
#普通の設定の人は一個消してください。
SendSpecial(“LeftSoft”)
Sleep(200)
SendSpecial(“LeftSoft”)
#今回はこのフラグは常にTrueにしてみてます。
If(btcflg)
#CommManagerで初回にBluetoothをONにしたときに、
#Discoverbleにするかどうかとか、ActiveSync接続中に
#なんかダイアログが出ることがあるのでとりあえずOK押してそれらを消す
sleep(500)
SendOK
sleep(200)
SendOK
EndIf
#インターネット共有を最小化
#もともとインターネット共有がアクティブウインドウだったばあいはそのまま。
If(AppName ne pactwindow)
Minimize(AppName)
mmflg = TRUE
EndIf
EndIf
#次回チェックの予約
nexttime = TimeStamp() + chkInterval
RunAt( nexttime, thisFile )
#起動前にアクティブだったウィンドウをアクティブにする。
#冗長だけどこれやらないと元々Today表示だった時に、右上に×が表示されっぱに
#なったりしたのでしょうがなく。
If(mmflg)
Show(pactwindow)
WaitForActive(pactwindow, 3)
EndIf

おすすめ