マクロの二重起動の抑制No.10708
igus さん 25/06/06 10:12
 
遅延時間を指定してマウスメニューを使ったマクロをキーに割り当てているのですが、
ときどきキー入力が重なるかしてマクロを二重に起動しようとすることがあります。
その際「マクロの実行を中止しますか」というダイアログが出てくるのですが、この
ダイアログを出なくしたいです。
すでに他のマクロが実行中ならダイアログを出さないでマクロを実行せずにそのまま
終了させたいのですが、そうしたことはできるのでしょうか?

[ ]
RE:10708 マクロの二重起動の抑制No.10709
秀丸担当 さん 25/06/06 10:37
 
二重起動のメッセージが出るのは、おそらくマクロを実行した秀丸エディタとは別の
秀丸エディタかと思います。
このメッセージを抑制することはできませんが、もともとのマクロをsetcompatibled
eで個別の実行にするといいかもしれません。
setcompatiblemode 0x08000000;を指定すると、他の秀丸エディタに跨ることがない
モードとして実行します。

例:
setcompatiblemode 0x08000000;
setmenudelay 1000;
mousemenu "a";
endmacro;

全体で1つではないので、実行を抑制するのではなく、どちらでも実行されます。
setactivehidemaru等を使った実行切り替えはできなくなります。

[ ]
RE:10709 マクロの二重起動の抑制No.10710
igus さん 25/06/06 14:10
 
立ち上げている秀丸が一つだけの時でもメッセージが出ることがあるのでマクロを起
動しているのは同一の秀丸だと思います。
setcompatiblemode 0x08000000;を試してみたのですがマクロ中にsetactivehidemaru
を多用しているのでうまくありませんでした。

isMacroExecutingメソッドあたりが使えないかと思ったのですが自分自身が実行中の
ため返り値が常に1(マクロ実行中)となりうまくいきませんでした。

以前はこのようなメッセージは出てなかったはずなのですが三カ月ほど前にパソコン
を買い替えて秀丸を引っ越したころから出るようになりました。「はい」か「いい
え」を押してやればいいだけなので気にしないようにすればいいんですが、割と頻繁
に出現するときがあってどのタイミングで出現するのかも分からずちょっと気になっ
てます。
もうちょっと調べてみて、再現できる状況とか分かればご連絡します。

[ ]
RE:10710 マクロの二重起動の抑制No.10711
秀丸担当 さん 25/06/06 15:02
 
同じ秀丸エディタのことだったのですね。失礼しました。
そうだとすれば、disablebreakをすると、Escやクリックの操作での中断メッセージ
は出なくなります。
ただし、マクロの作り方によっては抜け出せなくなってしまう場合があるので注意が
必要です。
必要部分のみdisablebreak;〜enablebreak;で挟むといいかもしれません。

[ ]
RE:10711 マクロの二重起動の抑制No.10712
igus さん 25/06/09 16:56
 
必要箇所をdisablebreak;〜enablebreak;で挟んでみたのですが、今のところ調子が
良いようです。もうちょっと使い込んでみないと分かりませんが多分、解決したよう
に思います。
ありがとうございました。

[ ]