JavaScriptでSendKeysNo.10021
igus さん 22/11/27 08:25
 
秀丸マクロがJavaScriptに対応したということで、JavaScriptを勉強中です。
試験的なマクロを作って練習しているのですが思ったように動いてくれません。
下のマクロで新規ファイルを開いてSendKeysでキー入力を送り、「あ」が入力される
のを確認しました。ただメッセージ文のコメントアウトを外すと「あ」が入力されな
くなってしまいます。
どこかおかしいのでしょうか?

//あ.mac
openfile "";
if(!imestate)imeswitch;
js{
  var sh=new ActiveXObject("WScript.Shell");
  sh.SendKeys("a");
  sh.SendKeys("{ENTER}");//「あ」入力確定
  sh=null;
}
//message "hoge";
endmacro;

[ ]
RE:10021 JavaScriptでSendKeysNo.10022
秀丸担当 さん 22/11/28 10:33
 
WScript.ShellのSendKeysは、キーボード入力をそのままシミュレートするもののよ
うで、特定のウィンドウに送信するといったようなことには使えないようです。
例えばnotepad.exeを起動してからSendKeysを実行するとメモ帳を操作できたりして
しまいます。
今回の場合は、こちらで確認してみた限りでは、メッセージボックスをEnterでOKし
ているようです。
たまたま再現しましたが、ちょっとしたタイミングの具合で結果は違ったりすると思
うので、確実な操作をするためにSendKeysを使うのは避けたほがよさそうです。

[ ]
RE:10022 JavaScriptでSendKeysNo.10023
igus さん 22/11/28 13:42
 
UWSCとかの外部ツールを利用すれば秀丸の特定のウィンドウにキー入力を送るなんて
ことができて現状、これを利用してたのですが、javascriptが使えるようになったと
いうことで秀丸マクロだけで完結できるようになるのではないかと試してるところで
した。
JaveScriptのsendkeysの利用が限定的ということであれば、これまで通りUWSCとかに
頼るようにします。
検証ありがとうございました。

[ ]