menuからのCtrl+INo.10200
igus さん 23/10/05 20:30
 
メニューからの選択で Ctrl を押している場合と押していない場合とでマクロの挙動
を変えたい場合があるのですが、使っていてちょっと気になる動作があったので教え
てください。

//=== ctrlチェック.mac ここから ===

#fc=0;setmenudelay 1000;
mousemenu
"&A ctrlチェック1",
"&I ctrlチェック2";

#res=result;
if(iskeydown(0x11))#fc=1;
if(#res==0)endmacro;
if(#fc){message "ctrlが押された";}
else{message "ctrlが押されてない";}

//=== ctrlチェック.mac ここまで ===

こんなマクロでメニューが表示されている場合「Ctrl+A」は使えるのですが「Ctrl+
I」の方はメニューが選べないようです。
メニューの表示される前やマウスを使っての選択は可能なのでそれほど困ることはな
いのですが、なにか制限があるのでしょうか?

[ ]
RE:10200 menuからのCtrl+INo.10201
秀丸担当 さん 23/10/06 10:14
 
確かにそうなることが確認できました。
一通りしてみたら、なぜだか、Windows標準のメニューは特定のキーが効かないよう
でした。
C H I J Mができないようです。
コンソールアプリでは一般的に^C中断、^Hバックスペースとか、タブ、改行(LF)、改
行(CR)に相当するキー操作なのだと思いますが、メニューでは関係ないはずで、何の
ために使われているのか謎です。

秀丸エディタの場合、ユーザーメニューの遅延時間、ユーザーメニューでは2スト
ロークキーのために自前で処理していました。
menu文のsetmenudelayの期間も自前でした。
menu文でいったんメニューが出ると自前の処理がなくてだめでした。
この場合もできるようになんとかします。

[ ]
RE:10201 menuからのCtrl+INo.10202
igus さん 23/10/06 14:43
 
windows 標準のキー操作が何故か悪さをしてるらしいということで、了解しました。
マクロを呼ぶのに emacs っぽく C-xC-i なんてキーバインドとかで使ってたのです
が、タイミングによってうまく発動してくれないのはちょっとしたストレスでした。
なんとかしてもらえるなら嬉しいです。
ありがとうございました。

[ ]