# Status15, 19 のレジストリの位置 #StatusReg="Software\Sharp\STMail\PhoneStatus" StatusReg="Software\Sharp\PhoneStatus" #メール受信の実行ファイルとオプション MailRecv_exe = "\Program Files\qmail3\q3u.exe" MailRecv_opt = "-g pdx -q -f" # setmanner.exe の在処 Setmanner_exe = "\Program Files\SetManner\setmanner.exe" # cmdRegistryNotifyApp のありか RegNotifyAdd_exe = "\Program Files\cmdRegistryNotifyApp\cmdRegistryNotifyApp.exe" RegNotifyDel_exe = "\Program Files\cmdRegistryNotifyApp\cmdRegistryStopNotification.exe" TestUrl = "http://www.google.co.jp/" TimeOut = 60 #---------------------------------------------------------- # マナーモード情報 mannerMode = RegRead("HKCU",StatusReg,"status3") # マナーモードになっていなければ、マナーモードに移行させる If (Not (mannerMode)) RunWait(Setmanner_exe, "/on") Sleep(500) EndIf # Notification を消去し、Status15と19のステータス情報を戻す Run(RegNotifyDel_exe, "0;Email.retry") RegWriteDWord("HKCU", StatusReg, "Status15", -1) RegWriteDWord("HKCU", StatusReg, "Status19", 0) # Connect() はエラーになるので autoconnect3 に任せる。 dummy = ReadFile(TestUrl, 32) # この時点で接続がなかったり電解強度が弱すぎるなら次ね。 connection = Regread("HKLM","System\State\Connections","Count") wsim_power = Regread("HKCU","Software\Sharp\ShPhoneLib","RFStrength") If ( (connection = 0) || (wsim_power < 1) || (wsim_power > 6)) Call("RegisterRecvMail") EndIf # 呼び出し時点でのメール数を取得 CallFunction("countUnreadMails", nmail1) # メーラーで受信。 Run(MailRecv_exe, MailRecv_opt) # マナーモード解除 If (Not (mannerMode)) Sleep(1000) Run(Setmanner_exe, "/off") EndIf # 未読メール数が 0 より大きくなるか、エラーウィンドウが出るか、 # 60秒(120*500ms)経ったらループを抜ける。 i = 0 While (i < TimeOut) CallFunction("countUnreadMails", nmail2) # 成功。status19 由来でなければ回線を切断する If (nmail2 > nmail1) If (Not stat=19) Disconnect() EndIf Exit Else i = i + 1 Sleep(1000) EndIf EndWhile # この時点で接続がなかったり電解強度が弱すぎるなら次ね。 connection = Regread("HKLM","System\State\Connections","Count") wsim_power = Regread("HKCU","Software\Sharp\ShPhoneLib","RFStrength") If ( (connection = 0) || (wsim_power < 1) || (wsim_power > 6)) Call("RegisterRecvMail") EndIf #-------------------------------------------------------------- # W-Zero3メール、またはOutlookメールの未読数を計測する Sub countUnreadMails Return(RegRead( "HKCU", "Software\Sharp\STMail\Accounts\QMAIL3", "NoRead")) # Return(RegRead("HKCU", "System\State\Messages\TotalEmail\Unread", "Count")) EndSub # メール受信をレジストリに登録して終了 Sub RegisterRecvMail RunAt(TimeStamp() + TimeOut , RegNotifyAdd_exe, \ "0;Email.retry;HKCU;Software\Sharp\ShPhoneLib;RFStrength;" \ & "\Program Files\MortScript\MortScript.exe;" \ & "'""\Program Files\qmail3-add\recvmail.mscr""';-;-;-1;1;3;7;-;1") If (Not (mannerMode)) Run(Setmanner_exe, "/off") EndIf Exit EndSub # -------------------------------------------------------- # status レジストリに関する情報は以下の通り: # http://rakuenoverdrive.net/2007/11/18/ws011sh-registry-list