ラベル MortScript の投稿を表示しています。 すべての投稿を表示
ラベル MortScript の投稿を表示しています。 すべての投稿を表示

20100116

RSS Ticker Today再起動用のスクリプトを書き換えてみました

Last Update : 16/Jan/10
RSS Ticker Today再起動用のスクリプト」でご紹介したスクリプトですが、RSS Ticker Todayの作者の方のブログに、「Config.exeに/recoverを引数として渡すと再起動スクリプトと同じ動作をして終了します。」とのコメントがありましたので、スクリプトを書き換えてみました。

Reset.mscr

#RSS Ticker Todayのハングアップ時用のソフトリセットスクリプト(Ver2.0)
filename= "\Program Files\RSS Ticker Today\RSSTICKER_TRANSACT"
exe1 = "\Program Files\RSS Ticker Today\Config.exe"
exe2 = "\Program Files\reset.exe"

#該当ファイルがあれば削除
If(FileExists(filename))
Run(exe1, " /recover")

Else
EndIf

#リセット
Run(exe2)

上記スクリプト・ファイルのショートカットをQuickMenuに登録して使用します。

前提は、QuickMenuMortScriptがインストールされていること、Reset.exeが「\Program Files\」直下にあることと、RSS Ticker Todayが「\Program Files\RSS Ticker Today\」にインストールされている事です。

詳しくは「RSS Ticker Today再起動用のスクリプト」をご参照ください。

以上

20091116

RSS Ticker Today再起動用のスクリプト

Last Update : 27/Nov/09
RSS Ticker TodayとRunATでフィードを自動巡回してToday画面にTicker表示する」でご紹介したRSS Ticker Todayを便利に使わせて頂いています。

このアプリは、Todayプラグインですので、安全確保の為、例外発生でフリーズした際には再起動時にDLLの読み込みをキャンセルするような仕様になっています。

この状況になるとToday画面からアイテムが消え、「Today」=>「アイテム」の選択メニューにもRSS Ticker Todayが表示されなくなります。

RSS Ticker Todayを再度使用するためには、RSS Ticker Todayがインストールされているフォルダ(通常は\Program Files\RSS Ticker Today\)内にある「RSSTICKER_TRANSACT(拡張子はありません) 」というファイルをファイラー等で削除した上で、デバイスをソフトリセットします。


当方の環境では、月に何回か上記の様な状況になりますので、この動作を、ワンタッチで行えるように、簡単なスクリプトを導入してみました。

ResetQuickMenuに登録していますので、QuickMenuのプルダウン・メニューからResetを使って端末をソフトリセットする際に「「RSSTICKER_TRANSACT」が存在すればそれを削除してからソフトリセットする」というだけのMortScriptです。

前提は、QuickMenuMortScriptがインストールされていること、Reset.exeが「\Program Files\」直下にあることと、RSS Ticker Todayが「\Program Files\RSS Ticker Today\」にインストールされている事です。

【使用するアプリ】

・RSS Ticker Today
 http://d.hatena.ne.jp/tmyt/

・MortScript
 http://www.sto-helit.de/

・Reset
 http://www.geocities.jp/hou_ming_2/

・QuickMenu
 http://www.alensw.com/read.php?1

【スクリプト】

Reset.mscr

#RSS Ticker Todayのハングアップ時用のソフトリセットスクリプト(Ver1.0)
filename= "\Program Files\RSS Ticker Today\RSSTICKER_TRANSACT"
exe = "\Program Files\reset.exe"

#該当ファイルがあれば削除
If(FileExists(filename))
Delete(filename)

Else
EndIf

#リセット
Run(exe)

上記スクリプト・ファイルのショートカットをQuickMenuに登録して使用します。


Quickmenuへの登録方法については「スタートメニューをQuickMenuに置き換えてプルダウン&階層表示する」をご参照ください。

以上

20090625

自動巡回スクリプトでサスペンドからの復帰時のmicroSDの認識について

Last Update : 25/Jun/09
最近、アドエスの環境設定を見直したところ、「ニュース・天気予報・PodcastをMortScriptとRunATで自動巡回する」でご紹介しているスクリプトでサスペンド状態から自動巡回した際に、アプリケーションからmicroSDカードが認識出来ないエラーが頻繁に発生する様になりました。

そこで、スクリプトを変更して、起動直後に一度メモリーカードにアクセスしてから各アプリケーションを起動する様にしてみました。

MortScriptにはファイルシステムの情報を取得するコマンドが幾つか用意されていますので、今回は、その中から「FreeDiskSpace」を使用しましたが、「DirExists」や「TotalDiskSpace」といったコマンドを使用しても同様の効果は期待出来ます。

折角、「FreeDiskSpace」でディスクの空き容量をチェックしましたので、直後の「Sleep」を「SleepMessage」に置き換えてメモリカードの空き容量やその他の情報を指定した数秒だけ画面に表示する様にしています。

スクリプト(部分);


#Podcast、天気予報、ニュースサイト自動巡回スクリプト

#設定#################################################

#スクリプトのバージョン
Morning4Version = "5.30"

<略>

#Sleep値の調整(マイクロ秒)
WaitL = 5000
WaitS = 1000

<略>

#Podcastダウンロード時間のMAX値(分)を設定
timeout1 = 20

##RSSダウンロード時間のMAX値(分)を設定
timeout2 = 2

<略>

#スクリプト開始#######################################

#画面OnしてmicroSDカードにアクセス(サスペンドから復帰)
#メッセージ表示
ToggleDisplay(1)
Sleep(WaitL)
CardSpace = FreeDiskSpace("microSDカード")
SleepMessage( WaitL/1000,"自動巡回スクリプトを開始します^NL^バージョン : "&Morning4Version&"^NL^ダウンロード時間 ; "&timeout1 + timeout2&"分(MAX)^NL^カード空き容量 ; "&CardSpace/1000000&"MB","Morning4",0 )

<略>


スクリプト全体については「ニュース・天気予報・PodcastをMortScriptとRunATで自動巡回する」をご参照ください。(上記スクリプトに改訂済みです。)

その他のカスタマイズ例については「アドエスのカスタマイズまとめ」をご参照ください。

以上

20090619

cmdRegistryNotifyAppとMostScriptでKeyLockSuspenderを置き換える

Last Update : 19/Jun/09
cmdRegistryNotifyAppを使ってAlarmClockの設定状態をToday画面に表示する」で導入したcmdRegistryNotifyAppMortScriptと組み合わせてKeyLockSuspenderを置き換えてみました。

KeyLockSuspenderを起動オプションを付けずに常駐させてキーロック時に画面オフする様にした時と同じ動作をします。

プロセス数制限やメモリ残量の関係で常駐ソフト数を減らしたい場合には良い方法かと思います。


【使用するソフト】

・cmdRegistryNotifyApp
http://ssipa.web.fc2.com/

・MortScript
http://www.sto-helit.de/index.php?lang=en

【設定】

cmdRegistryNotifyAppでアドエスのレジストリを監視し、MortScriptを利用してキーロックスイッチの状態に合わせて画面をオン・オフします。

1)MortScript

以下のスクリプトを使用します。

Keylock2Displayoff.mscr


#CmdRegistryNotifyAppを使用してキーロック時に画面をオフにするスクリプト v1.0

#キーロックのOn/Off確認

OnOff = RegRead("HKCU","\Software\Sharp\PhoneStatus\","Status0")

#キーロックがOnならば画面をオフ
#キーロックがOffならば画面を表示

If(Onoff=1)
ToggleDisplay(Off)
Else
ToggleDisplay(On)
EndIf


作成したスクリプトは他のスクリプトと一緒に下記フォルダに置いています。

\Program Files\MortScript\Data\


参考サイト;
・MortScript まとめ&マニュアル要訳
http://home.att.ne.jp/wave/deox_pop/mortscript.html#1

2)cmdRegistryNotifyApp

ZIP形式で配布されていますので、解凍して端末にコピーし、起動オプションを付けたショートカットを作成して実行します。

一度実行すればリセットしても設定は削除されません。

設定を削除したい時は同梱のcmdRegistryStopNotifyAppを起動オプションを付けて実行します。

こちらも予めショートカット作成しておくと良いでしょう。

実行ファイルとショートカットは以下のフォルダに纏めて置いています。

\Program Files\cmdRegistryNotifyApp\


a)設定用ショートカット

ファイル名;
Keylock2DisplayoffOn.lnk

プログラムと起動オプション;
"\Program Files\cmdRegistryNotifyApp\cmdRegistryNotifyApp.exe" 3;keylock2displayoff;HKCU;Software\Sharp\PhoneStatus;Status0;\Program Files\MortScript\MortScript.exe;'"\Program Files\MortScript\Data\keylock2displayoff.mscr"';-;-;-1;1


b)設定削除用ショートカット

ファイル名;
Keylock2DisplayoffOff.lnk

プログラムと起動オプション;
"\Program Files\cmdRegistryNotifyApp\cmdRegistryStopNotification.exe" 3;keylock2displayoff


【動作】

キーロックスイッチをオンにすると画面がオフになりキーロックスイッチをオフにすると画面がオンになります。

その他のカスタマイズ例については「アドエスのカスタマイズまとめ」をご参照ください。

以上

cmdRegistryNotifyAppを使ってAlarmClockの設定状態をToday画面に表示する

Last Update : 19/Jun/09
AlarmClockの設定状態をToday画面に表示する」でご紹介したMortScriptを無限ループにして常にレジストリを監視する方法だとメモリの消費やプロセス数制限が気になりますので、cmdRegistryNotifyAppを使ってレジストリを監視する方法に変更してみました。



【使用するソフト】

・cmdRegistryNotifyApp
http://ssipa.web.fc2.com/

・MortScript
http://www.sto-helit.de/index.php?lang=en

・AlarmClock
http://page.freett.com/todamitsu/index.htm

・走り書き for ポケP
http://home.comcast.net/~cheezsj/menuj.htm

以下のサイトを参照させて頂きました。

・よれよれの浪人週記
http://d.hatena.ne.jp/kazaguruma-87/20090315

【設定】

cmdRegistryNotifyAppを使ってAlarmClockのレジストリを監視し、アラームの設定状態に変更があったらOn/Offと設定時刻の情報を読み取って走り書き for ポケPのレジストリに書き込む事でToday画面上にアラームの設定状態を表示します。

1)AlarmClock

ZIP形式で圧縮されて配布されていますので、解凍して、「AlarmClock.PPC_ARM.CAB」を端末にコピーし、ファイラーから実行してインストールします。

詳しくは「シンプルなアラーム機能のAlarmClock」を参照してください。

2)走り書き for ポケP

CAB形式で配布されていますので、端末にコピーし、ファイラから実行してインストールします。

Todayプラグインですので、インストール後に「スタートメニュー」=>「設定」=>「個人用」タブ=>「Today」から「アイテム」タブを開いて「quick_memo_for_pokeP」の項目にチェックを入れて有効にします。


Today画面上のアイコンをタップ&ホールドするとメニューが現れますので、設定を行います。


今回は、タブを非表示にしています。

3)MortScript

以下のスクリプトを使用します。

AlarmClock2Today#2.mscr


#AlarmClockの設定状態をToday画面に表示するスクリプト v1.1
#CmdRegistryNotifyAppを使用するバージョン

#アラームのOn/Off確認
OnOff = RegRead("HKCU","\Software\GreenSoftware\AlarmClock\Setting","Alarm")

#AlarmがOnならばセットされた時刻を表示
#AlarmがOffならばAlarm Offと表示
If(Onoff=1)
time1 = RegRead("HKCU","\Software\GreenSoftware\AlarmClock\Setting","strNext")
time2 = SubStr(time1,-5)

RegWriteString("HKLM","Software\Microsoft\Today\Items\quick_memo_for_pokeP","ptext1"," Alarm On @"&time2)
RedrawToday

Else
RegWriteString("HKLM","Software\Microsoft\Today\Items\quick_memo_for_pokeP","ptext1"," Alarm Off")
RedrawToday

EndIf


上記スクリプトでは設定の変更が直ぐにToday画面に反映される様にRedrawTodayを使っていますが、画面全体がパタパタと再描画されるのが気になる場合はRedrawTodayのある行(2ヶ所)を削除すれば少し時間を置いてAlarm状態の表示部分んだけが変更される様になります。

作成したスクリプトは他のスクリプトと一緒に下記フォルダに置いています。

\Program Files\MortScript\Data\


参考サイト;
・MortScript まとめ&マニュアル要訳
http://home.att.ne.jp/wave/deox_pop/mortscript.html#1

4)cmdRegistryNotifyApp

ZIP形式で配布されていますので、解凍して端末にコピーし、起動オプションを付けたショートカットを作成して実行します。

一度実行すればリセットしても設定は削除されません。

設定を削除したい時は同梱のcmdRegistryStopNotifyAppを起動オプションを付けて実行します。

こちらも予めショートカット作成しておくと良いでしょう。

今回は、以下のフォルダを作成して実行ファイルとショートカットを纏めて置いています。

\Program Files\cmdRegistryNotifyApp\


a)設定用ショートカット

ファイル名;
Alarm2TodayOn.lnk

プログラムと起動オプション;
"\Program Files\cmdRegistryNotifyApp\cmdRegistryNotifyApp.exe" 3;Alarm2Today;HKCU;Software\GreenSoftware\AlarmClock\Setting;Alarm;\Program Files\MortScript\MortScript.exe;'"\Program Files\MortScript\Data\AlarmClock2Today#2.mscr"';-;-;-1;1


b)設定削除用ショートカット

ファイル名;
Alarm2Todayoff.lnk

プログラムと起動オプション;
"\Program Files\cmdRegistryNotifyApp\cmdRegistryStopNotification.exe" 3;Alarm2Today


【動作】

AlarmClockでアラーム時刻をを設定するとToday画面上に設定内容が表示されます。



AlarmClockの設定画面を閉じてもToday画面上には設定内容が表示されています。


注)レジストリを弄りますのであくまでも自己責任でお願いします。

その他のカスタマイズ例については「アドエスのカスタマイズまとめ」をご参照ください。

以上

20090429

MortScript4.2の不具合について

Last Update : 04/May/09
MortScriptをv4.2にアップデイトしてみました」で上手く動かないとご報告したMortScript4.2ですが、検証してみた結果、日本語のウインドウタイトルを指定するとエラーになるケースがある様です。

問題が発生するのは「ニュース・天気予報・PodcastをMortScriptとRunATで自動巡回する」でご紹介したスクリプトです。


#Morning4.mscr

#Podcast、天気予報、ニュースサイト自動巡回スクリプト(Ver4.11)

#設定#################################################

#↓使用するアプリケーションとフォルダ

exe1 = "\program files\Wifictrl.exe"
exe2 = "\program files\harddial.exe"
exe3 = "\program files\JWezWM\JWezWM.exe"
exe4 = "\program files\RSS Ticker Today\RSSCruise.exe"
exe5 = "\Program files\03RSSReader\03RSSReader.exe"
exe6 = "\program files\BeyondPod\BeyondPod.exe"

#↓Sleep値の調整(マイクロ秒)
WaitL = 5000
WaitS = 1000

#↓ウインドウタイトル
title0 = "03RSSリーダー"
title1 = "All Feeds"

#↓Podcastのダウンロード終了を示すウインドウタイトル(適宜追加)
#"title10"、"title11"は変数として使用済
title2 = "Downloaded"
title3 = "Nothing to Download!"
title4 = "Update Completed!"

#↓Podcastのダウンロード時間のMAX値(分)を設定
timeout1 = 20

#↓#RSSリーダーのダウンロード時間のMAX値(分)を設定
timeout2 = 2

#スクリプト開始#######################################

#画面On(サスペンドから復帰)
ToggleDisplay(1)
Sleep(WaitL)

#外部電源に接続している場合のみPodcastを巡回
If(ExternalPowered())

  #無線LANをOn
  Run(exe1, "on")
  Sleep(WaitL)

  #Beyondpodの自動巡回#########################

  #BeyondPodを立ち上げウインドウがアクティブになるまで最大60秒待つ
  Run(exe6)
  WaitForActive(title1, 60)

  #全てのフィードを更新
  SendRightSoft(title1)
  Sleep(WaitS)
  SendKeys(title1, "U")
  Sleep(WaitS)
  SendKeys(title1, "A")

  #タイムアウト時間をカウント
  startingtime = TimeStamp()
  While(TimeStamp() < startingtime + timeout1 * 60)

    #"title2"ウインドウが存在したらBeyondpodを終了し次の巡回用サブルーチンへ
    If(WndExists(title2))
      SendRightSoft(title2)
      Sleep(WaitS)
      SendKeys(title2, "E")
      Sleep(WaitS)
      Call("others")
    Else
    Endif

    #"title3"ウインドウが存在したらBeyondpodを終了し次の巡回用サブルーチンへ
    If(WndExists(title3))
      SendRightSoft(title3)
      Sleep(WaitS)
      SendKeys(title3, "E")
      Sleep(WaitS)
      Call("others")
    Else
    Endif

    #"title4"ウインドウが存在したらBeyondpodを終了し次の巡回用サブルーチンへ
    If(WndExists(title4))
      SendRightSoft(title4)
      Sleep(WaitS)
      SendKeys(title4, "E")
      Sleep(WaitS)
      Call("others")
    Else
    Endif

    #BeyondPodが手動で終了されたらスクリプト終了用サブルーチンへ
    If(ProcExists(exe6))

    Else
      Sleep(WaitL)
      Call("endofscript")
    Endif
  EndWhile

  #タイムアウトの場合はBeyondpodを終了
  #次の巡回用サブルーチンへ
  Run(exe6)
  Sleep(WaitS)
  SendRightSoft()
  Sleep(WaitS)
  SendKeys(, "E")
  Sleep(WaitL)
  Call("others")

Else
  Call("others")
Endif

Exit

Sub others

  #JWezWMの自動巡回#############################
  RunWait(exe3, "auto")

  #RSSTickerTodayの自動巡回#####################
  RunWait(exe4)

  #03RSSリーダーの自動巡回######################

  #03RSSリーダーが起動していればウインドウをアクティブに、起動していなければ実行
  If(WndExists(title0))
    Show(title0)
  Else
    Run(exe5)
  EndIf

  #03RSSリーダーのウインドウがアクティブになるまで最大60秒待つ
  WaitForActive(title0, 60)

  #更新チェック
  SendRightSoft(title0)
  Sleep(WaitS)
  SendKeys(title0, "A")
  Sleep(WaitS)
  SendLeftSoft(title0)
  Sleep(WaitS)
  SendCR("確認")

  #ダウンロード終了待ち
  Sleep(timeout2 * 60000)

  #03RSSリーダーをアクティブに
  Show(title0)

  #03RSSリーダーのウインドウがアクティブになるまで最大60秒待つ
  WaitForActive(title0, 60)

  #03RSSリーダーを終了しスクリプト終了用サブルーチンへ
  SendRightSoft(title0)
  Sleep(WaitS)
  SendKeys(title0, "E")
  WaitFor("終了の確認", 10)
  SendCR("終了の確認")
  Sleep(WaitL)
  Call("endofscript")

EndSub

Sub endofscript

  #接続切断用サブルーチン
  #無線LANとダイアルアップを切断し画面を再描写してスクリプトを終了
  Run(exe1, "off")
  Sleep(WaitS)
  Run(exe2, "-off")
  RedrawToday
  Exit
EndSub

#スクリプト終了

03RSSリーダーの更新チェックの「SendCR("確認")」のところ(赤字部分)で「ウインドウが見つからない(Window '確認' could not be found)」というエラーになってしまいます。

スクリプトを変更してウインドウタイトルを指定しないでキーストロークを送るという対策も考えられますが、誤作動の可能性がありますし、従来のv4.1の機能で特に問題ありませんので、v4.1を使い続ける事にしました。

なお、「QDzのデータ更新を簡単に」「RSSリーダーから辞書をいっぱつ検索するMortScript」「AlarmClockの設定状態をToday画面に表示する」でご紹介しているスクリプトには日本語のウインドウタイトルを指定している部分はありませんので、v4.2でも問題無く動作します。

・MortScript
http://www.sto-helit.de/index.php?module=page&entry=ms_overview&action=view&menu=29

・MortScript まとめ&マニュアル要訳
http://home.att.ne.jp/wave/deox_pop/mortscript.html#1

以上

20090404

アドエスの常駐ソフトのCPU占有率とメモリー消費量

Last Update : 01/Jul/09
アドエスに常駐させているソフトのメモリー消費量とCPU占有率を調べてみました。


今回はTaskMgrを使用しました。

・TaskMgr
http://www.dotfred.net/TaskMgr.htm

常駐ソフトのメモリ消費量とCPU占有率

ProcessMemory UsageCPU Usage
1回目2回目
MortScript17kb1.191.09
MenuKeyHelper1kb0.460.27
SortInchKey2kb--
notifook1kb--
XcrawlEX55kb0.180.36
ChgSuisoku1kb0.641.46
QuickMenu772kb--
QDz59kb0.09-
lock2suspend1kb--
AtokSetP56kb0.180.18
NoConfirmDial1kb0.090.55

AlarmClockの設定状態をToday画面に表示する」でご紹介した様にMortScriptを無限ループにして常駐させているので、パフォーマンスに影響が出ていないか心配だったのですが、標準ソフトのメモリー消費量と比較してみても問題無さそうです。

標準ソフトのメモリ消費量(抜粋)

ProcessMemory Usage
tmail41kb
lightmail
204kb
Denwa114kb
gwes5025kb
device1284kb
filesys1728kb


追記1;
現在は、「cmdRegistryNotifyAppを使ってAlarmClockの設定状態をToday画面に表示する」と「cmdRegistryNotifyAppとMostScriptでKeyLockSuspenderを置き換える」でご紹介した方法を採用しており、MortScriptKeyLockSuspenderは常駐させていません。

追記2;
AtokSetPlusは機能拡張に伴い[es]plusに名称変更されています。
詳しくは「AtokSetPlusを[es]plusに入れ替えてみました」をご参照ください。

その他のカスタマイズ例については「アドエスのカスタマイズまとめ」をご参照ください。

以上

20090402

AlarmClockの設定状態をToday画面に表示する

Last Update : 19/Jun/09
シンプルなアラーム機能のAlarmClock」でご紹介したAlarmClockは設定や操作が簡単で使い易いのですが、アラームの設定状態を確認する為にはソフトを再起動させる必要があります。

そこで、MortScriptを使ってアドエスのToday画面にアラームの設定状態を常に表示する様にしてみました。


Todayアイテムを沢山登録しているせいか、アラーム設定変更時のToday画面の再描画がスローモーションの様になりますが、実用には耐えられそうです。

【使用するソフト】

・MortScript
http://www.sto-helit.de/index.php?lang=en

・AlarmClock
http://page.freett.com/todamitsu/index.htm

・走り書き for ポケP
http://home.comcast.net/~cheezsj/menuj.htm

下記サイトを参照させて頂きました。

・よれよれの浪人週記
http://d.hatena.ne.jp/kazaguruma-87/20090315

【設定】

MortScriptを使ってAlarmClockのレジストリからアラームのOn/Offと設定時刻の情報を読み取り、走り書き for ポケPのレジストリに書き込む事でToday上にアラームの設定状態を表示します。

1)AlarmClock

ZIP形式で圧縮されて配布されていますので、解凍して、「AlarmClock.PPC_ARM.CAB」を端末にコピーし、ファイラーから実行してインストールします。

詳しくは「シンプルなアラーム機能のAlarmClock」を参照してください。

2)走り書き for ポケP

CAB形式で配布されていますので、端末にコピーし、ファイラから実行してインストールします。

Todayプラグインですので、インストール後に「スタートメニュー」=>「設定」=>「個人用」タブ=>「Today」から「アイテム」タブを開いて
「quick_memo_for_pokeP」の項目にチェックを入れて有効にします。

Today画面上のアイコンをタップ&ホールドするとメニューが現れますので、設定を行います。


今回は、タブを非表示にしています。

3)MortScript

下記スクリプトを使います。

無限ループにして常駐させますので、シュートカットを作ってスタートアップに登録しておくと良いでしょう。


#AlarmClock2Today.mscr

#AlarmClockの設定状態をToday画面に表示するスクリプト v7.0

#ループ

While(1)

  #アラームのOn/Off確認

  OnOff1 = RegRead("HKCU","\Software\GreenSoftware\AlarmClock\Setting","Alarm")

  Sleep(1000)

  #On/Offに変化があったら実行

  OnOff2 = RegRead("HKCU","\Software\GreenSoftware\AlarmClock\Setting","Alarm")

  If(OnOff2 = OnOff1)

  Else

    #アラームがOnならばセットされた時刻を表示
    #アラームがOffならばOffと表示

    If(Onoff2=1)

      time1 = RegRead("HKCU","\Software\GreenSoftware\AlarmClock\Setting","strNext")

      time2 = SubStr(time1,-5)

      RegWriteString("HKLM","Software\Microsoft\Today\Items\quick_memo_for_pokeP","ptext1"," Alarm On @"&time2)

      RedrawToday

    Else

      RegWriteString("HKLM","Software\Microsoft\Today\Items\quick_memo_for_pokeP","ptext1"," Alarm Off")

      RedrawToday

    EndIf

  EndIf

EndWhile

#スクリプト終了

参考サイト;
・MortScript まとめ&マニュアル要訳
http://home.att.ne.jp/wave/deox_pop/mortscript.html#1

AlarmClockでアラーム時刻をを設定するとToday画面上に設定内容が表示されます。


AlarmClockの設定画面を閉じてもToday画面上には設定内容が表示されています。


注)レジストリを弄りますのであくまでも自己責任でお願いします。

追記;

cmdRegistryNotifyAppを使ってAlarmClockの設定状態をToday画面に表示する」ではMortScriptを常駐させない方法をご紹介していますのでご参照ください。

その他のカスタマイズ例については「アドエスのカスタマイズまとめ」をご参照ください。

以上

20090330

MortScriptをv4.2にアップデイトしてみました

Last Update : 30/Mar/09
いつも参考にさせて頂いているMortScriptまとめ&マニュアル要訳もアップデイトされましたので、MortSchriptをv4.1からv4.2に入れ替えてみました。

・MortScript
http://www.sto-helit.de/index.php?module=page&entry=ms_overview&action=view&menu=29

・MortScript まとめ&マニュアル要訳
http://home.att.ne.jp/wave/deox_pop/mortscript.html#1

>V4.2
>・Status dialog
>・Additional time functions (TimeZone..., MakeTimeStamp, ...)
>・Additional string functions (CharAt, RepeatString, ...)
>・Additional file functions (ReadLine, DirContents, ...)
>・New operators (+=, *=, ? :, ...)
>・Unit parameter for memory queries
>・Include Subs from other files
>・Improved error handling
>・Improved SendKeys
>・Improved compatibility with plain WinCE devices
>・And some more bugfixes, functions, performance tuning, ...

幾つかの機能追加、バグフィックス、チューニングが行われた様ですが、「ニュース・天気予報・PodcastをMortScriptとRunATで自動巡回する」でご紹介しているスクリプトが正常に動作しませんでしたのでv4.1に戻してしまいました。

現在、原因を検証中ですが、なかなか特定出来ませんので、既にベータ版が公開されているv4.3の正式リリース迄はv4.1ままにしておくかも知れません。

以上

20090315

アドエスの設定の書き換え(カスタマイズ)に使用しているソフト

Last Update : 01/Jul/09
アドエスの設定の書き換え(カスタマイズ)に使用しているソフトをご紹介します。

MortScriptのスクリプトファイルを書き換えたり、[es]plusの設定をしたり、レジストリを書き換えたりする時に使っています。

【使用しているソフト】

・Internal Use Spy
標準

・Enumwin
http://blog.livedoor.jp/kobayasu/archives/50027267.html

・TaskMgr
http://www.dotfred.net/TaskMgr.htm

・○号テキストエディタ
http://www.fermes-soft.com/

・TRE
http://www2r.biglobe.ne.jp/~tascal/download/pocketpc/tre.htm

【各ソフトの説明】

①Internal Use Spy

Windows Mobileに標準の機能です。

タイトルバーのスタートメニューの右側、タイトル表示と電池アイコンの間辺りをアクションボタンを押しながらスタイラスでタップ&ホールドするとクラス名とタイトル名が表示されます。


場所を探し当てるのに少々コツが要るのですが、スタイラスを液晶に当てたままグリグリと動かすと点線の丸が表示される時がありますので、そのままホールドするとこのボックスが表示されます。

[es]plusMortScriptでクラス名やタイトル名を利用した設定を行う際に便利な機能です。

クラス名やタイトル名を利用した設定方法については「P-Study Systemと03RSSリーダーとBeyondpodで英語の勉強」「Operaブラウザのテンキー操作を便利に」「ニュース・天気予報・PodcastをMortScriptとRunATで自動巡回する」「RSSリーダーから辞書をいっぱつ検索するMortScript」「QDzのデータ更新を簡単に」を参考にしてください。

enumwin

Internal Use Spyでタイトルバー上のポイントが上手く探せない場合や、アクションキーを押すと別の動作をしてしまってInternal Use Spyが使えない場合にはこのソフトでクラス名やタイトル名を調べます。

Zip形式で圧縮して配布されていますので、解凍して「enumwin.exe」を端末の任意のフォルダにコピーしてください。

起動すると実行中のプログラムのタイトル名の一覧が表示されます。

タイトル名を選択して「class」ボタンをクリックするとクラス名が表示されます。


その他にも色々なタスク管理が出来ます。

TaskMgr

Windowsで「Ctl+Alt+Del」で表示されるタスクマネージャーと類似のソフトです。

CPU使用率やタイトル名を調べるのに使えます。


○号テキストエディタ

テキストエディタです。

[es]plusの設定ファイル(「.ini」ファイル)を書き換えたり、MortScriptのスクリプトファイルを書き換えてカスタマイズするのに使用します。

書き換えの例については「P-Study Systemと03RSSリーダーとBeyondpodで英語の勉強」「Operaブラウザのテンキー操作を便利に」「ニュース・天気予報・PodcastをMortScriptとRunATで自動巡回する」「RSSリーダーから辞書をいっぱつ検索するMortScript」「QDzのデータ更新を簡単」を参考にして下さい。


Zip形式で圧縮されて配布されていますので、解凍し、CABファイルを端末にコピーして、ファイラーから実行してインストールします。

「メニュー」=>「ツール」=>「設定」=>「拡張子・マクロ」タブからINIファイル等に関連付けしておくと便利です。


TRE

レジストリエディタです。


Zip形式で圧縮されていますので、解凍し、「TRE.arm.cam」を端末にコピーしてファイラーから実行すればインストールされます。

レジストリの変更は失敗するとフルリセットするリスクが伴いますので、慎重に自己責任でお願いします。

レジストリの変更例は「スケジュール管理はOffisnailDateとdyScheduleとOutlookで」「Windows Media Playerをカスタマイズする」「スタートメニューをQuickMenuに置き換えてプルダウン&階層表示する」「電話帳はやっぱりQDzが便利」「CloseAllとSortInchKeyで起動中のソフトをワンタッチで全て終了する」「アドエスのレジストリ設定一覧」でご紹介しています。

以上

20090224

ニュース・天気予報・PodcastをMortScriptとRunATで自動巡回する

Last Update : 25/Jun/09
RSS Ticker Today03RSSリーダーJWezWMBeyondPodを使ってフィード・天気予報・Podcastを自動的にダウンロードするMortScript用のスクリプトをご紹介します。

RunATと組み合わせて使用します。

【使用するソフト】

・Rss Ticker Today
http://d.hatena.ne.jp/tmyt/

・03RSSリーダー
http://labs.feed-yomi.com/03rssreader/

・JWezWM
http://nullmo.web.fc2.com/

・BeyondPod
http://www.beyondpod.mobi/

これらのソフトの個別の設定については下記記事を参考にしてください。

参考記事;
RSS Ticker Todayでフィードを自動巡回してToday画面にTicker表示する
RSSリーダーから辞書をいっぱつ検索するMortScript
JWezWMでToday画面に週間天気予報を表示する
ポッドキャストはオールインワンのBeyondPodで

自動巡回にはMortScriptRunATを使います。

・MortScript
http://www.sto-helit.de/

・RunAT
http://www20.atwiki.jp/zero3_392/pages/1.html

WiFiのOn/Offと通信の強制終了には下記ソフトを使っています。

・WifiCtrl
http://w03holic.seesaa.net/article/51166074.html

・harddial
http://w-zero3.org/?%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9

【設定】

①下記MortScriptを用意する

WiFiは消費電力が大きいので、外部電源に接続時のみWiFiをOnにしてPodcastをダウンロードする様にしています。

バッテリ駆動時は天気予報とニュースのサイトのみを巡回します。

また、Podcastのダウンロードには制限時間を設定しています。

参考サイト;
・MortScript まとめ&マニュアル要訳
http://home.att.ne.jp/wave/deox_pop/mortscript.html#1


#Podcast、天気予報、ニュースサイト自動巡回スクリプト

#設定#################################################

#スクリプトのバージョン
Morning4Version = "5.30"

#使用するアプリケーションとフォルダ
exe1 = "\program files\Wifictrl.exe"
exe2 = "\program files\harddial.exe"
exe3 = "\program files\JWezWM\JWezWM.exe"
exe4 = "\program files\RSS Ticker Today\RSSCruise.exe"
exe5 = "\Program files\03RSSReader\03RSSReader.exe"
exe6 = "\program files\BeyondPod\BeyondPod.exe"

#Sleep値の調整(マイクロ秒)
WaitL = 5000
WaitS = 1000

#ウインドウタイトル
title0 = "03RSSリーダー"
title1 = "All Feeds"

#Podcastのダウンロード終了を示すウインドウタイトル(適宜追加)
#"title10"、"title11"は変数として使用済
title2 = "Downloaded"
title3 = "Nothing to Download!"
title4 = "Update Completed!"

#Podcastダウンロード時間のMAX値(分)を設定
timeout1 = 20

##RSSダウンロード時間のMAX値(分)を設定
timeout2 = 2

#スクリプト開始#######################################

#画面OnしてmicroSDカードにアクセス(サスペンドから復帰)
#メッセージ表示
ToggleDisplay(1)
Sleep(WaitL)
CardSpace = FreeDiskSpace("microSDカード")
SleepMessage( WaitL/1000,"自動巡回スクリプトを開始します^NL^バージョン : "&Morning4Version&"^NL^ダウンロード時間 ; "&timeout1 + timeout2&"分(MAX)^NL^カード空き容量 ; "&CardSpace/1000000&"MB","Morning4",0 )

#外部電源に接続している場合のみPodcastを巡回
If(ExternalPowered())

#無線LANをOn
Run(exe1, "on")
Sleep(WaitL)

#Beyondpodの自動巡回#########################

#BeyondPodを立ち上げウインドウがアクティブになるまで最大60秒待つ
Run(exe6)
WaitForActive(title1, 60)

#全てのフィードを更新
SendRightSoft(title1)
Sleep(WaitS)
SendKeys(title1, "U")
Sleep(WaitS)
SendKeys(title1, "A")

#タイムアウト時間をカウント
startingtime = TimeStamp()
While(TimeStamp() < startingtime + timeout1 * 60)

#"title2"ウインドウが存在したらBeyondpodを終了し次の巡回用サブルーチンへ
If(WndExists(title2))
SendRightSoft(title2)
Sleep(WaitS)
SendKeys(title2, "E")
Sleep(WaitS)
Call("others")
Else
Endif

#"title3"ウインドウが存在したらBeyondpodを終了し次の巡回用サブルーチンへ
If(WndExists(title3))
SendRightSoft(title3)
Sleep(WaitS)
SendKeys(title3, "E")
Sleep(WaitS)
Call("others")
Else
Endif

#"title4"ウインドウが存在したらBeyondpodを終了し次の巡回用サブルーチンへ
If(WndExists(title4))
SendRightSoft(title4)
Sleep(WaitS)
SendKeys(title4, "E")
Sleep(WaitS)
Call("others")
Else
Endif

#BeyondPodが手動で終了されたらスクリプト終了用サブルーチンへ
If(ProcExists(exe6))

Else
Sleep(WaitL)
Call("endofscript")
Endif
EndWhile

#タイムアウトの場合はBeyondpodを終了
#次の巡回用サブルーチンへ
Run(exe6)
Sleep(WaitS)
SendRightSoft()
Sleep(WaitS)
SendKeys(, "E")
Sleep(WaitL)
Call("others")

Else
Call("others")
Endif

Exit

Sub others

#JWezWMの自動巡回#############################
RunWait(exe3, "auto")

#RSSTickerTodayの自動巡回#####################
RunWait(exe4)

#03RSSリーダーの自動巡回######################

#03RSSリーダーが起動していればウインドウをアクティブに、起動していなければ実行
If(WndExists(title0))
Show(title0)
Else
Run(exe5)
EndIf

#03RSSリーダーのウインドウがアクティブになるまで最大60秒待つ
WaitForActive(title0, 60)

#更新チェック
SendRightSoft(title0)
Sleep(WaitS)
SendKeys(title0, "A")
Sleep(WaitS)
SendLeftSoft(title0)
Sleep(WaitS)
SendCR("確認")

#ダウンロード終了待ち
Sleep(timeout2 * 60000)

#03RSSリーダーをアクティブに
Show(title0)

#03RSSリーダーのウインドウがアクティブになるまで最大60秒待つ
WaitForActive(title0, 60)

#03RSSリーダーを終了しスクリプト終了用サブルーチンへ
SendRightSoft(title0)
Sleep(WaitS)
SendKeys(title0, "E")
WaitFor("終了の確認", 10)
SendCR("終了の確認")
Sleep(WaitL)
Call("endofscript")

EndSub

Sub endofscript

#接続切断用サブルーチン
#無線LANとダイアルアップを切断しスクリプトを終了
Run(exe1, "off")
Sleep(WaitL)
Run(exe2, "-off")
Sleep(WaitL)
RedrawToday
Exit
EndSub

RunAT設定

RunATの定時実行スケジュールに上記MortScriptを設定して、毎朝6時に上記スクリプトを自動実行しています。

・定時実行スケジュール設定

 タイトル ; Morning
 状態 ; 有効
 時刻 ; 06:00:00
 コマンド ; \Program Files\MortScript\Mortscript.exe
 パラメータ ; "\Program Files\MortScript\data\Morning4.mscr"
 曜日 ; 毎日


7時以降は「RSS Ticker TodayとRunATでフィードを自動巡回してToday画面にTicker表示する」でご紹介している様にToday画面のRSSのTicker表示のみ1時間毎に更新しています。

その他のカスタマイズ例については「アドエスのカスタマイズまとめ」をご参照ください。

以上

20090217

RSSリーダーから辞書をいっぱつ検索するMortScript

Last UpDate : 20/Jun/09
アドエスにインストールしたRSSリーダー上で選択した単語を辞書で自動検索するスクリプトを作ってみました。



①RSSリーダー上でタッチパネルで英単語を選択する
②OKキーを長押し
③該当の英単語の辞書検索結果が表示される

という動作をします。

RSSリーダーに戻るときは「Taskmanを使って文字キー長押しでタスクスワップする」でご紹介した文字キー長押しでのタスクスワップを使います。

【詳細】

アドエスにはデフォルトの状態でDicLandという辞書ソフトがインストールされています。

http://www.sharp.co.jp/ws/011sh/function/application.html
http://www.brother.co.jp/product/honyaku/info/ppcd/index.htm

(単品販売は終了している様です。)

三省堂の辞書が4種類入っています。

・エクシード英和辞典
・エクシード和英辞典
・デイリーコンサイス国語辞典
・英文ビジネスレター辞典

この辞書にはクリップボード検索モードがありますので、この機能を利用して、RSSリーダー上で調べたい単語を選択してOKキーを長押しすると自動的に辞書が立ち上がり該当する単語の検索結果を表示する様にしてみました。

RSSリーダーはどのソフトでも構いませんが、ここでは03RSSリーダーを使用しています。

登録するフィードはお好み次第ですが、以下のReutersのフィードはひとつひとつの記事が短くてちょっとした空き時間に気軽に読めるので気に入っています。

・Top News
http://feeds.reuters.com/reuters/topNews

・Business News
http://feeds.reuters.com/reuters/businessNews

・U.S.
http://feeds.reuters.com/reuters/domesticNews

・International News
http://feeds.reuters.com/reuters/worldNews

・Politics
http://feeds.reuters.com/reuters/politicsNews

・Entertainment News
http://feeds.reuters.com/reuters/entertainment

・Sports News
http://feeds.reuters.com/reuters/sportsNews

【使用するソフト】

・DicLand
アドエスに標準搭載

・03RSSリーダー
http://labs.feed-yomi.com/03rssreader/

・MortScript
http://www.sto-helit.de/

・SortInchKey
http://d.hatena.ne.jp/xianon/00000000/#download

SortInchKey以外にもKeyHookソフトを使っている方はMultiKeyHookを忘れずに。

・Multikeyhook
http://geocities.yahoo.co.jp/gl/hou_ming_2/view/20070906/1189012118

MultiKeyHookの設定方法については「MultiKeyHookへのキーフックアプリの登録方法」を参考にしてください。

03RSSリーダーをポッドキャストの簡易リーダーとして利用する場合はEzdownloadが必要です。

・Ezdownload
http://masataka.sakura.ne.jp/ez/jp/

【設定】

03RSSリーダーをインストールして好みのフィードを登録する

03RSSリーダー設定例;

「メニュー(右ソフトキー)」=>「設定」=>「オプション」から設定します。

・基本タブ
  データフォルダ ; \Program Files\03RssReader\data\
  設定フォルダ ; 空欄
・ブラウザタブ ; 標準ブラウザを使用する
・接続タブ ; 最大コネクト数 4
・Podcastタブ ; ダウンロード先=\Program Files\03RssReader\data\
          ezDownloadのパス ; \Proglam Files\
・ツリータブ ; Tahoma 9
・記事一覧タブ ; Tahoma 9
・一覧上タブ ; 表示しない
・記事(テキスト)タブ ; Tahoma 12

Podcastタブで設定しているEzdownloadはPodcastのダウンロード場合に必要です。

②下記MortScriptを用意する


#DicOnRss.mscr
#03RSSリーダーとDicLand(辞書)の連携スクリプト

title1 = "DicLand"
title2 = "03RSSリーダー"exe = "\Program Files\DicLand\DicLand.exe"

#選択範囲をコピー
SendCtrlKey(title2,"c")

#辞書が起動していればスクリプト終了
If(WndExists(title1))
Exit
EndIf

#辞書を起動しアクティブになるまで最大20秒待つ
Run(exe)WaitForActive(title1,20)

#クリップボード検索モードに
SendLeftSoft(title1)
Sleep(100)
SendUp(title1)
Sleep(100)
SendKeys(title1,"A")
Sleep(100)

#選択範囲をコピー
SendCtrlKey(title2,"c")

#スクリプト終了

参考サイト;
・MortScript まとめ&マニュアル要訳
http://home.att.ne.jp/wave/deox_pop/mortscript.html#1

SortInchKey03RSSリーダーがアクティブ時の「OKキー短押し」に上記MortScriptを割り当てる


「設定」=>「個人用」タブ=>「ボタン」=>「ソフトキー」でソフトキーを有効にしていますので、「OKキー短押し」をすると「右ソフトキー」として動作し、「OKキー長押し」をすると「OKキー短押し」として動作するようになっています。

そのため、SortInchKeyに「OKキー短押し」と登録すると「OKキー長押し」をした時の動作になります。(ややこしいですね。)

SortInchKeyの設定については「SortInchKey設定まとめ」もご参照ください。

【注意事項他】

スクリプトにかなり手抜きしている部分がありますので、制限事項があります。

制限事項;
DicLandがクリップモード検索モードがOFFの状態で立ち上がっていると上手く動かない

DicLandが起動しているかどうかを調べるのは簡単なのですが、クリップボード検索モードになっているかどうかを調べる方法が判らないからです。

また、クリップボード検索モードのON/OFFはトグルになっていて、現在のモードが判らないと希望のモードに固定出来ません。(たぶん、レジストリを監視すれば良いのでしょうが...)

その為、

①辞書が起動していない時は起動してクリップボード検索モードにした上で選択範囲をコピーして辞書ソフトに貼り付けて検索

②辞書が起動していればクリップボード検索モードになっているので選択範囲をクリップボードにコピーするだけ

という、ちょっといい加減な処理になっています。

実は、アドエスには「EBPocketで光の辞典を使う」でご紹介しているEBPocketという辞書ソフトを入れていて、普段は使い慣れたこちらを使っています。

DicLandは03RSSリーダーとの連携でしか使っていないので、この設定でも問題なく使えているのです。

一度DicLandを終了するとクリップボード検索モードが解除されますので、これを利用して「DicLandが起動していれば一旦終了してから再立ち上げしてクリップボード検索モードにする」という処理にすれば確実には動きますが、無駄な処理が多くなってスピード感に欠けます。

また、タッチスクリーンを使って03RSSリーダー上で単語を選択するのが意外に難しいです。(特に通勤途中の満員電車の中では難しいです。)

英語ならば必ず単語間にスペースがあるので、単語間を片手のキー操作で移動出来るようなRSSリーダーがあればもっと便利に使えるのですが...

なお、フィードやポッドキャスト、天気予報等は早朝にまとめて自動巡回しています。

その方法については「ニュース・天気予報・PodcastをMortScriptとRunATで自動巡回する」にて詳しくご説明しています。

その他のカスタマイズ例については「アドエスのカスタマイズまとめ」をご参照ください。

以上

20090216

QDzのデータ更新を簡単に

Last Update : 04/May/09
アドエスの連絡先の置き換えソフトとして人気のあるQDzですが、Windows Mobileの標準の「連絡先」やPC側のOutlookで変更したデータをQDzに読み込む為にはQDzを再起動する必要があります。

起動を高速化する為QDzをバックグラウンドで常駐させている場合はデータを変更する度にQDzを再起動する必要があるのですが、それをワンタッチ化してみました。

QDzがアクティブになっている状態で「OKキー」を長押しするとQDzが再起動されます。

【使用するソフト】

・QDz
http://www.nicque.com/pqz/QDz.htm

・MortScript
http://www.sto-helit.de/

・SortInchKey
http://d.hatena.ne.jp/xianon/00000000/#download

SortInchKey以外にもKeyHookアプリを使用する場合はMultiKeyHookもお忘れなく。

・MultiKeyhook
http://geocities.yahoo.co.jp/gl/hou_ming_2/view/20070906/1189012118

MultiKeyHookの設定方法については「MultiKeyHookへのキーフックアプリの登録方法」を参考にしてください。

【設定】

QDzMortSctiptSortInchkey、(Multikeyhook)をインストール

QDzのインストールと設定については「電話帳はやっぱりQDzが便利」を参照してください。

②下記スクリプトファイル(MortScript用)を用意する


#QDzRefresh.mscr
#QDzのデーターを再読込するスクリプト
title = "QDz"
exe = "\Program Files\QDz\QDz_ES.exe"

#QDzを起動する
Run(exe)
Sleep(100)

#終了する
SendRight
Soft(title)
Sleep(100)
SendKeys(title,"V")
Sleep(1000)

#QDzを再起動する
Run(exe)

#スクリプト終了

QDz上から実行することを前提にしたスクリプトですので、最初の部分でQDzが起動しているかどうかを確認せず、いきなり起動/二重起動しています。

動作には支障ありませんが、気になる方は修正してください。

参考サイト;
・MortScript まとめ&マニュアル要訳
http://home.att.ne.jp/wave/deox_pop/mortscript.html#1

SortInchKeyQDzがアクティブ時の「OKキー短押し」にQDz再起動用のスクリプトを割り当てる

「設定」=>「個人用」タブ=>「ボタン」=>「ソフトキー」でソフトキーを有効にしていますので、「OKキー短押し」をすると「右ソフトキー」として動作し、「OKキー長押し」をすると「OKキー短押し」として動作するようになっています。

そのため、SortInchKeyに「OKキー短押し」と登録すると「OKキー長押し」をした時の動作になります。(ややこしいですね。)


SortInchKeyについては「SortInchKey設定まとめ」でも纏めてご紹介しています。

これでワンタッチでQDzの再起動が出来る様になりました。

ちなみに、当方の場合、連絡先が500件程登録されているので、再起動(含読み込み)に約10秒掛かります。

その他のカスタマイズ例については「アドエスのカスタマイズまとめ」をご参照ください。

以上