#RemoteLoc.mscr############### #メールによるリモート操作で、現在位置の座標をメール返信するMortScript # # #W-ZERO3 WS003SH&Pocket Outlookメールで動作確認 #for MortScript 4.0 Public Release or later / WM5 # #by モバイル板MortScriptスレの1 #ref. to http://pc11.2ch.net/test/read.cgi/mobile/1172140262/l50 # #<使い方> #・このスクリプトを起動しておきます。 #→別の端末(以後「コントローラー」と呼びます)から、指定のメールアドレスに # "RemoteLoc, send me your location." というサブジェクト(タイトル)のメールを送って下さい。 # 本文は必要ありません。 #→スクリプトは、min変数で指定した分数毎に、受信済みメールの内容をチェックしていて、 # 指定のコントローラー側メールアドレスから来た上のタイトルのメールを見つけたら、 # 現在の最近隣基地局の緯度経度座標を取得、Pocket Outlookメーラーを起動して # # 【タイトル】"I am here at : N xx.xxxx E xx.xxxx" # 【本文】"hh:mm:ss" (現在時刻) # # というメールを自動返信します。 # #<注意> #・メールの自動受信は行いません。 #・コントローラーのメールタイトルは、一文字たりとも間違えないで下さい。 #・コントローラーのメール及び返信メールのタイトルは変更可能ですが、 # 半角英数字で記述して下さい。日本語は使えません。 #・Pocket Outlookメールで動作確認しています。 # #・Pocket Outlookメールの「アカウント名」とは、 #  「アカウントを切り替える」や「アカウント設定」で一覧表示されるもの、 #  「電子メールのセットアップ>アカウント情報:名前」で自分が入力したもの、 #  です。 # #・受信済みメールを何百件も保存している方は、 # 「#受信済みメールファイルチェック」のプロセスに時間がかかるかも知れません。 # #・他人のモバイル端末で使用する場合は、あくまでも合意のもとで行って下さい。 # #・定期起動を停止するには、 # RemoveNotifications( RemoteLoc.mscrへのフルパス )して下さい。 # #<別途必要なファイル> #・naviClip.exe # ( http://w-zero3.org/uploader/src/up0344.zip ) # →" \Program Files" に入れて下さい。 # # #保存ディレクトリが異なる場合は、適宜書き換えて下さい。 ###################################### #設定項目################################# #コントローラー側のメールアドレス contAdr = "controller@hoge.com" #位置情報返信先のメールアドレス mailTo = "controller@hoge.com" #位置情報返信に使用するメールアカウント名 mailAcct = "アカウント名" #メールファイルチェックのタイムスパン(分) min = 10 #基本的に設定はここまで######################## thisFileName = SystemPath( "ScriptName" ) thisFile = SystemPath( "ScriptPath" ) \ thisFileName & SystemPath( "ScriptExt" ) #前回のメールチェック時刻記録用datファイル datFile = SystemPath( "ScriptPath" ) \ thisFileName & ".dat" contSubj = thisFileName & ", send me your location." mailSubj = "I am here at : " mailCl = "\Windows\tmail.exe" Nv = "\Program Files\naviClip.exe" t = TimeStamp() mailBody = FormatTime( "H:i:s", t ) msec = 200 #メールアカウント巡回スクリプト等に組み込んで使用する場合は #以下のブロックをコメントアウトして下さい。 #min変数での設定は無効となります。 RemoveNotifications( thisFile ) RunAt( t + min*60, thisFile ) RunOnPowerOn( thisFile ) ##ここまで###################### #電界強度チェック。W-ZERO3固有のレジストリ #他機種の方はコメントアウトするか、変更して下さい。 Rfs = RegRead( "HKCU", "Software\Sharp\ShPhoneLib", "RFStrength" ) If( Rfs < 2 || ( Rfs > 7 && Rfs < 10 ) || Rfs > 12 ) Exit EndIf #前回の実行時刻読み取り If ( FileExists( datFile )) last_t = ReadFile( datFile ) Else last_t = 0 EndIf #受信済みメールファイルチェック i = 1 ForEach mpbPath in files ( "\Windows\Messaging\*81030102.mpb" ) If ( FileCreateTime( mpbPath ) + 3600*9 > last_t ) mpbArray[i] = mpbPath i = i + 1 EndIf EndForEach #実行時刻をdatファイルに書き込み WriteFile( datFile, t, 0 ) n = i - 1 If ( n = 0 ) Exit EndIf If ( n > 1 ) #新しい順からソート i = 1 While( i < n ) m = n While( m - i ) If ( FileCreateTime( mpbArray[m] ) > FileCreateTime( mpbArray[m-1] )) temp = mpbArray[m] mpbArray[m] = mpbArray[m-1] mpbArray[m-1] = temp EndIf m = m - 1 EndWhile i = i + 1 EndWhile EndIf #コントローラーのメールかどうかチェック ErrorLevel( "off" ) ForEach path in array mpbArray If( ReadFile( path ) ne "" ) x = ReadFile( path ) #見つかったら If ( Find( x, "Return-Path: <" & contAdr ) && Find( x, "Subject: " & contSubj )) clipSave = ClipText() SetClipText( "" ) #naviClipを起動させる RunWait( Nv ) i = 0 While( ClipText() eq "" && i < 150 ) Sleep( msec ) i = i + 1 EndWhile If ( i >= 150 ) SetClipText( clipSave ) Exit EndIf location = ClipText() #poutlookメーラで、位置情報返信メールを作成 Run( mailCl, "-service """ & mailAcct & """ -to """ & mailTo & """ -subject """ & mailSubj & location & """ -body """ & mailBody & """" ) WaitFor( mailAcct, 30 ) Show( mailAcct ) WaitForActive( mailAcct, 30 ) Sleep( msec ) #「送信」キーを押す SendLeftSoft Sleep( msec ) #「送受信」コマンドを送る Run( mailCl, "-sync" ) SetClipText( clipSave ) Exit EndIf EndIf EndForEach #End of Script #################