「MortScriptをv4.2にアップデイトしてみました」で上手く動かないとご報告したMortScript4.2ですが、検証してみた結果、日本語のウインドウタイトルを指定するとエラーになるケースがある様です。
問題が発生するのは「ニュース・天気予報・PodcastをMortScriptとRunATで自動巡回する」でご紹介したスクリプトです。
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
以上
#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
以上