[コンピュータ・モバイル]MortScript4.2でショートカットキーをSendKeysすると

Willcom03に入れてるMortScriptのヴァージョンを4.1から4.2にしてみた。そしたら、自作スクリプトが動かなくなってちょい焦ったのでここに記録しておく。

動かなくなったスクリプトは、自動的にPOsyncを起動してGoogleカレンダーのカレンダー・他のカレンダーと予定を同期するという今は自分だけで使ってるヤツ(もしかしたらそのうち公開するかも…しないかも…)。

問題となったのはどこだろうとスクリプトを調べてみるとSendKeysコマンドだった。MortScriptのチェンジログを見るとImproved SendKeysなんて書かれてるので何かしら動作が変更されて、そのために動かなくなったようだ。

具体的な動作を記すと、POsyncのメニューをSendLeftSoftコマンドで開いてからショートカットキーをSendKeysコマンドで送るといったことを行ってるんだけど、SendKeysしてもその操作が行われない!その後、何かしらの動作(画面クリックやらカーソルキー押しやら何でも)をすると何事もなかったかのように実行される。このままじゃ、あかんやろと。

説明が分かりにくいのでもう少し簡単に言うと、メニューのショートカットキーをSendKeysしてもすぐに実行されないということです。

これを回避するには、MortScriptのヴァージョンをチェックして4.2だったら何かしら動作を行う…というのが素直でいいかなと思った。例えば…、

SendLeftSoft("ウィンドウタイトル")
SendKeys("ウィンドウタイトル","ショートカットキー")

と、左ソフトキーを押してからショートカットキーを送るなんてしているところを、

SendLeftSoft("ウィンドウタイトル")
SendKeys("ウィンドウタイトル","ショートカットキー")
ver=Split(MortScriptVersion(),".",1)
If(ver[1]&ver[2] eq "42")
  SendLeft("ウィンドウタイトル")
EndIf

という感じで、左ソフトキーを送ってメニューを開きSendKeysしたときには続いてSendLeftを行う。右ソフトキーの場合にはSendRightね。まぁ続けてやる動作は何でもいいんだけど、押しても一番害がなさそうなのは左右のキーかなと思って。(ちなみに、ヴァージョンチェックで4と2だけにしてるのは、4.2.0.0の上2つで十分かなと思って)

実際にスクリプト中で使うときには、

Call("leftmenucr","ウィンドウタイトル","ショートカットキー")
...
Sub leftmenucr
  Local(ver)
  ver=Split(MortScriptVersion(),".",1)
  SendLeftSoft(argv[1])
  SendKeys(argv[1],argv[2])
  If(ver[1]&ver[2] eq "42")
    SendLeft(argv[1])
  EndIf
EndSub

とサブルーチン化すると、Callで呼び出せばいいので汎用的でいいと思う。

もっと根本的な解決法、あるいは他のもっとスマートな回避法があれば誰か教えてくださいな。

ちなみに、POsyncではない他のソフトでも起こるのかは調べるのがめんどくなったので今のところ不明。

とりあえずはこれで、自作スクリプトも今まで通り動くようになったしめでたしめでたし。

MortScript4.2でショートカットキーをSendKeysするとへのコメントを書く

コメント : 0件

MortScript4.2でショートカットキーをSendKeysするとへの言及をする

埋め込みリンクタグ
<a target="_blank" href="http://f-u.seesaa.net/article/115054712.html">MortScript4.2でショートカットキーをSendKeysすると : full of universe</a>
トラックバック URL
http://blog.seesaa.jp/tb/115054712
承認したトラックバックのみ表示される

トラックバック : 0件

プロフィール

sima

ガジェット大好き。おもしろアイテム大好き。いろいろとまぁ物欲を刺激するモノが多いけど、なかなか手に入れることができないでいる。いつかは自分の部屋を、自分が気に入ったモノだけで埋め尽くしたいものだなぁ。…あっ、これ将来の夢ね。

Twitter はフォロー大歓迎なのでよろしく。よく蚊と戦ってるよ。

最新記事

  1. OpeTumblr の Opera Extensions (拡張機能) 版を密かに公開 (05月25日)
  2. シカ成分を補充したら幸せになった (04月24日)
  3. ブログを(内部的にガッツリと)リニューアルしてみた (12月10日)
  4. 補完モードを開始するマッピングを書く (10月25日)
  5. アボカドを育ててみた…かった (07月23日)
  6. 正規表現クロスワードを完全クリアしてみた (07月19日)
  7. Gmail バックアップソフトの Gmvault が動かないときの解決法 (07月14日)
  8. Google アカウントが消える前に! Gmail フルバックアップのススメ (06月30日)
  9. 厳選して使っているポイントサイト2つ (03月27日)
  10. Tumblr で画像を Lightbox 表示!(しかも何も導入せずに) (03月21日)

カテゴリ

アーカイブ

コメント

Gmail バックアップソフトの Gmvault が動かないときの解決法
dsfds (03月31日)
OpeTumblr の Opera Extensions (拡張機能) 版を密かに公開
sima (06月26日)
you (11月30日)
you (11月30日)
sima (10月28日)
HTML ソースの改行を半角スペースにしない方法
ok (06月21日)
sima (05月28日)
edvakf (05月28日)
英数字・記号を並べてみる
ふぁ (11月25日)
コメハチ (11月02日)
OperaでもっとTumblrる!(OpeTumblrをまたまた改良)
you (05月09日)
sima (05月07日)
you (05月04日)
chikuwa (12月12日)

トラックバック

20代で知っておくべき週番号のこと
full of universe (05月16日)
UKTenkiを自動巡回させてみる(MortScript)
なんとなくすばらしい日々の戯れ言 (01月31日)
新着メールを一気に開くMortScriptを改良!
PDAと私生活 (11月07日)
PDAと私生活 (11月02日)
コイツはすごい!Windows Live Writerでブログ投稿をラクラクに
シーサーイーサー (10月31日)
Willcom03で新着メールを一気に開く!(MortScript)
PDAと私生活 (10月10日)

のカレンダー