一介の開発者の戯言

現在パイオニアのAVIC-MRZ07IIというカーナビを利用しています。
カーナビで使っているSDカードをパソコンに挿してNAVI*STUDIOというアプリを立ち上げるとマップデータや天気・渋滞情報の更新をしてくれます。
しかしずっと挿しっぱなしにしていると頻繁に下記エラーが出ます。

———————————————————
スマートループ渋滞情報の取得に失敗しました。
お手数ですがメッセージコードを控えて頂き、
カスタマーサポートセンターへお問い合わせください。

(メッセージコード:04200010)
詳細はオンラインヘルプを参照してください。
———————————————————

エラーで更新が停止しないのは良いのですがエラーの度にダイアログが上に重なって出続け、ダイアログが出ている間はアプリ自体が操作不能になるのでSDカードを抜くときにはダイアログを全部閉じる必要があり非常に面倒です。

いい加減面倒なのでUWSCというパソコン操作をマクロ実行してくれるアプリを使ってエラーのダイアログを閉じることにしました。

ID=GETID("NAVI*STUDIO","WFC-DefaultWindowClass")
IFB ID=-1 THEN
    MSGBOX("NAVI*STUDIOが見つかりません")
    EXITEXIT
ENDIF
SETHOTKEY(VK_F10, , "FINISH")
CNT=0
WHILE True
	ID=GETID("NAVI*STUDIO","#32770")
	IFB ID<>-1 THEN
		CNT=CNT+1
		ACW(ID)
		KBD(VK_SPACE,DOWN,40)
		KBD(VK_SPACE,UP,50)
		SLEEP(0.01)
	ELSE
		BREAK
	ENDIF
WEND
PRINT CNT+"個の窓を閉じました"
PROCEDURE FINISH()
	ifb MSGBOX("終了しますか?",BTN_YES or BTN_NO)=BTN_YES then
		EXITEXIT
	ENDIF
FEND

こんなファイルを拡張子をUWSにして作ってUWSCで実行するとNAVI*STUDIOのダイアログをすべて閉じてくれます。
Free版で普通に動作します。
NAVI*STUDIOを管理者権限で実行している場合はUWSCも管理者権限で実行しないと窓を閉じることはできません。
何かしらの理由で無限ループに陥ってもF10を押せば終了のダイアログが出る安心設計です。

私の場合はWindows7のマシンでもWindows8.1のマシンでも似たような症状が出ていますが
ネットで検索しても困っている人が見当たらなかったので需要は無いかもしれません。

※FINISHという関数を張り忘れていたので追加しました

コメント

コメント(1) “楽ナビのNAVI*STUDIO”

  1. matumoto.yoshitugu

    SDカードヘノ カキコミガデキナイ