[ 新規に投稿する ]

マクロの二重起動の抑制No.10708
igus さん 25/06/06 10:12 [ コメントを投稿する ]
  遅延時間を指定してマウスメニューを使ったマクロをキーに割り当てているのですが、ときどきキー入力が重なるかしてマクロを二重に起動しようとすることがあります。その際「マクロの実行を中止しますか」というダイアログが出てくるのですが、このダイアログを出なくしたいです。
すでに他のマクロが実行中ならダイアログを出さないでマクロを実行せずにそのまま終了させたいのですが、そうしたことはできるのでしょうか?
[ ]
RE:10708 マクロの二重起動の抑制No.10709
秀丸担当 さん 25/06/06 10:37 [ コメントを投稿する ]
  二重起動のメッセージが出るのは、おそらくマクロを実行した秀丸エディタとは別の秀丸エディタかと思います。
このメッセージを抑制することはできませんが、もともとのマクロをsetcompatibledeで個別の実行にするといいかもしれません。
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;で挟んでみたのですが、今のところ調子が良いようです。もうちょっと使い込んでみないと分かりませんが多分、解決したように思います。
ありがとうございました。
[ ]

[ 新規に投稿する ]