[ 新規に投稿する ]

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とかに頼るようにします。
検証ありがとうございました。
[ ]

[ 新規に投稿する ]