#http://www.ac-promenade.net/text/windowsmobile/ #Scripted by AC-Promenade http://www.ac-promenade.net/ #ActiveSync・画面オフ #ActiveSync_DispOff.mscr #ActiveSync時の電池節約、またUSB給電時の給電効率を上げるべく #ActiveSyncの同期完了毎時に画面を消灯するMortScript。 #特にWILLCOM 03はイルミキーの消灯を兼ねるので効果的です。 #USB給電のまま放置しておく方に役立つと思います。 #画面消灯時は"MyMobiler"での操作が便利だと思います。 #●使用方法概要 #・使用の準備を整えます。(詳細は後述) #・レジストリ監視通知等により本mscrを実行させます。 #・ActiveSyncの定期処理が行われる度に、画面を消灯します。 #●使用の準備 #非常駐利用する際は"cmdRegistryNotifyApp"をインストールした上で、 #本文設定AutocRNApp=1にし、本mscrを実行すれば自動適用します。 #この方法が最も安定して動作すると思います。※ #自前で動作環境を構築する場合は、AutocRNApp=0にして、 #[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Rai\:MSSYNCAPP\Session] #"Default"値の変動、または #[HKEY_CURRENT_USER\Software\Microsoft\ActiveSync\Partners\{***接続ID***}] #"LastSyncSuccess"値の変動、 #をトリガーとして、本mscrを起動するようにして下さい。 #"MortScript" "RegCondExec" が有用だと思います。 #●動作確認デバイス #Advanced/W-ZERO3[es], WILLCOM 03, HYBRID W-ZERO3 #その他機種でも、動くかもしれません。 #もし他のWindows Mobile機でも動いたらご報告頂けると嬉しいです。 #●必要環境 #・MortScript4.1以上(それ以下でも動くかも)、mscrの関連付け。 # http://www.sto-helit.de/ (PCサイト) #●補足事項 #・cmdRegistryNotifyApp (非常駐でレジストリを監視) # http://ssipa.web.fc2.com/ #・MyMobiler (母艦PC上でActiveSyncを介してGUI操作) # http://www.forest.impress.co.jp/article/2007/07/02/mymobiler.html #・RegCondExec (常駐してレジストリを監視) # http://www20.atwiki.jp/zero3_392/pages/10.html #・ActiveSync接続時にも自動メール受信を可能にする設定を #行っておく事を推奨します。 # http://d.hatena.ne.jp/nyomonyomo/20081122/ #(Advanced/W-ZERO3[es]の場合、WindowEnableは不要です。) #※他に、これと同一タイミングで起動するmscrを利用している場合、 #MortScript.exe本体が行う複数タスク管理中に実行された#mscrが #起動を無視される場合があります。 #これを回避するには、"MortScript"や"ExecMulti"等を利用して #各mscrの起動タイミングを、ほんの少しずらす様にして下さい。 #アンインストールの際は、"AutocRNApp"による #登録を行っていれば解除して、本mscrを削除するだけで大丈夫です。 #その他レジストリの追加、別ファイルの作成等は行っていません。 #本mscrによって生じる不利益に当方は関与しません。 #設定変数値を除く内容に改ざんがない限り、再配布は自由です。 #内容に変更を加えた際の再配布は、必ずその変更前と変更後の #明記を、本文中にて行ってあれば構いません。 #--------------------------------------------------------------- #以下環境設定 #(書き換えの際、文字コードS-JISが変換されないよう御注意下さい。) #■本mscrを、cmdRegistryNotifyAppで登録し実行する=1、しない=0。 #また登録用、解除用それぞれのパスも合わせて下さい。 #初回実行時のみ登録/解除を行います。後はそのまま使用して下さい。 #本mscrの名前やパスを変更した場合、再度実行すれば再登録します。 #注意!本mscrを削除する際は、事前に=0にして解除実行して下さい。 #予めファイル名に任意の文字を加えておけば、忘れないと思います。 AutocRNApp=1 cRNAppPath="\Program Files\cmdRegistryNotifyApp\cmdRegistryNotifyApp.exe" cRStopPath="\Program Files\cmdRegistryNotifyApp\cmdRegistryStopNotification.exe" #--------------------------------------------------------------- #バージョン履歴 #1.02 消灯実行回数をもう少しおとなしめに。 #1.01 今までUSB接続のみ実行していたのを廃止、Bluetooth未確認。 #1.00 公開。 #--------------------------------------------------------------- #Main Script #■PPC制限 If(MortScriptType() ne "PPC") message("This script is PPC only.") Exit EndIf #■cmdRegistryNotifyApp登録/解除 Call ("AutocRNAppChk") If (ProcExists("repllog.exe")) ToggleDisplay (False) Sleep (15000) EndIf #--------------------------------------------------------------- #Sub Script #■Call ("AutocRNAppChk") cmdRegistryNotifyApp登録/解除(付加オプション無し構文) Sub AutocRNAppChk cmdID="ActiveSync_DispOff.AutocRNApp" ThisFilePath=SystemPath ("ScriptPath")\SystemPath ("ScriptName")&SystemPath ("ScriptExt") MortScriptPath=SystemPath ("ScriptExe")\"MortScript.exe" RegNtfKeyExs="RegKeyExists (""HKLM"",""System\Notifications\"&cmdID&""")" RegNtfAppVal="RegRead (""HKLM"",""System\Notifications\"&cmdID&""",""Application"")" AutocRNAppRsl=0 If (AutocRNApp=0) If (Eval (RegNtfKeyExs)=1) If ( FileExists (cRNAppPath) and FileExists (cRStopPath) ) SetOff="3;"&cmdID Run (cRStopPath,SetOff) AutocRNAppRsl=1 Else AutocRNAppRsl=2 EndIf EndIf ElseIf (Eval (RegNtfAppVal) ne """"&MortScriptPath&""" """&ThisFilePath&"""") If ( FileExists (cRNAppPath) and FileExists (cRStopPath) ) cmdReg="HKLM;Software\Microsoft\Shell\Rai\:MSSYNCAPP\Session;Default" SetOff="0;"&cmdID RunWait (cRStopPath,SetOff) Sleep (300) SetOn="3;"&cmdID&";"&cmdReg&";"&MortScriptPath&";'"""\ &ThisFilePath&"""';-;-;-1;1" Run (cRNAppPath,SetOn) AutocRNAppRsl=1 Else AutocRNAppRsl=2 EndIf EndIf If (AutocRNAppRsl=1) Exit ElseIf (AutocRNAppRsl=2) If (Not FileExists (cRNAppPath)) Message ("cmdRegistryNotifyApp.exe^NL^が見つかりません。") EndIf If (Not FileExists (cRStopPath)) Message ("cmdRegistryStopNotification.exe^NL^が見つかりません。") EndIf Exit EndIf EndSub