メニューの「マクロ」「マクロ実行」はロNo.41694
こみやんま さん 25/02/20 17:03
 
これ条件がハッキリわからないので突き止めようとしているうちに
時がやや経過してしまったんですが、

メニューの「マクロ」「マクロ実行」をダイアログ経由でファイルを選択して
マクロ実行すると、おそらくロックがかかることがあるんじゃないかなと思います。
(最大8秒ほど)
(この時はマクロファイルの1行目すら数秒といった単位で実行されない)

でも条件がよくわからないです。
(わかるのはこれが発生するのは、必ず「マクロ」「マクロ実行」のダイアログ経由
で選んだ時だけだ、ということです。)

一番ひどかったのは、V9.41β5 ぐらいの時期。
その後、マシには印象を受けるものの、完全に解消されたわけではないようです。

(更新でも「JavaScriptのマクロで固まる場合がある問題修正」みたいなものが来て
はいるんですけどねー)

一方、「マクロから」「秀丸で今開いてるマクロ」を起動した場合、
このロック現象はまずもって発生しないと思われます。

以下みたいなマクロで「今秀丸で開いているマクロをトップレベル扱いで実行(衝突
したら予約)」みたいなのだとロック現象はまず発生しません。
https://github.com/komiyamma/hm_run_current_macro/blob/main/HmRunCurrentMacro.mac

[ ]
RE:41694 メニューの「マクロ」「マクロ実No.41696
秀丸担当 さん 25/02/21 09:27
 
バグ情報ありがとうございます。
マクロ実行ダイアログだけで起きる問題というのは、ちょっと思いつかないです。
マクロ登録のキー割り当てなどとの違いがあるとしたら、実行したマクロをファイル
ヒストリのように覚えておくことがあります。
それか、自動起動マクロのようにアクティブが切り替わった瞬間に働く何らかのプロ
グラムがあるとか…
(アクティブ切り替え直後の自動起動マクロは動かないです)
もし何等かの条件がわかったら助かります。

[ ]
RE:41696 メニューの「マクロ」「マクロ実No.41698
こみやんま さん 25/02/21 12:05
 
■自動起動マクロはおそらくは無関係

自動起動マクロは無関係だと思います。

一番最初に疑うところでしたので、
「自動起動マクロを有効にする」からチェックを外した状態で反映し、
(要するに根本的に自動起動マクロが動作しない状態で)
秀丸全部終了→ 秀丸改めて起動して、

ロック現象が「マクロ」「マクロ実行」のダイアログ経由で選んだ時」だけ
発生することは確認していました。


■ロックが起きる実行方法と、ロックが起きない実行方法

・ダイアログから → ロック起きる(もちろん、「起きることがまれにある」という
のが適切)
・ツールバーのボタンから → ロック起きない
・キーボードショートカットから → ロック起きない


■マクロ実行の直前や直後にタブ移動は起きていない

「普通にファイルを開いた状態」かつ「自動起動マクロがない状態」で
起きている。


■一度ロックが起きると、マクロが非常に単純でも発生する

一度このロックが起きた際は、
マクロの内容が

message "あいうえお";

などしかない内容でも、
この1行目からして実行を(ロックかなにかで)待ってしまう感じです。
(要するに「マクロ実行」自体が開始されていない印象)


■一度ロックが起きると、連続してロックが起きやすくなる

しかも一度発生すると、連発で起きやすい感じ。

・ダイアログから実行 → ロック → 3秒待ち → messgaeboxで"あいうえお"  ロッ
クおきたぞ!? キタ!?

・ダイアログから実行 → ロック → 2秒待ち → messgaeboxで"あいうえお"  連続
きたー!?
・ダイアログから実行 → ロックなし → messgaeboxで"あいうえお"  お、すぐでたw
・ダイアログから実行 → ロック → 6秒待ち → messgaeboxで"あいうえお"  長い
の来たー!w

みたいな感じでした。


■jsmodeか or hidemaru.runProcess が関係している?

 「自動起動マクロ」の次に私が疑ったのは、

 jsmode かもしくは hidemaru.runProcess でした。
 「これらを使ったマクロをダイアログ経由で実行」したら、
 次に実行するマクロ(このマクロは内容を問わない)を「ダイアログ経由で実行」す
るとロックしやすいのではないか?
 
 と考えました。
 
 これは全く自信がありません。
 単純にこの昨年11月下旬〜12月中頃にマクロ作成でやっていたことが
 jsmodeを使った  「hidemaru.runProcess を1つのマクロ内で複数回」使ったものを
 制作試行していたのでそこを疑った感じ。


■レジストリが関係している?

 次に私が疑ったのが、レジストリへの書き込みか読み取りでした。
 ダイアログ経由の実行の時だけ、そういった処理があるのではないか?
 だからロックされているのか? といったことでした。

 秀丸のレジストリとかが変なことになってんだろうか? と
 一度アンインストールして、インストーラーでインストールしたら、
 改善した気はしたのですが、その後、やはりたまに発生したので、
 それで「先に投稿したマクロ」を12月の中頃に作ってツールバーのボタンに割り当
てた感じですw


■タブモードが関係している?

 他に疑ったのがタブモードでしたが、
 普段タブモードでしか利用しないので自信がないです。
 「一度ロックが発生した後」は、(タブモードをオフにして)
 タブモードでなくしても、ダイアログ経由で実行するとロックが起きた気がします
が、
 ちょっと今となっては記憶があいまいです。


うーん、今思い出せるのはこのくらいです。

[ ]
RE:41698 メニューの「マクロ」「マクロ実No.41700
秀丸担当 さん 25/02/21 14:58
 
自動起動マクロはもともと動かないので関係無くて、何かしらの注入されたモジュー
ルか何かの影響かなと思いました。根拠は無いです。
以前起きていたということだとしたら、直接的には不明ですが以前の問題だったのか
もしれません。

レジストリの読み書きはあります。
ダイアログのときだけ、実行したマクロの履歴を記録したり取得したりします。
こちらで確認する限りでは違いがあるのはそれだけだと思います。

もし今後条件などがわかったら助かります。

[ ]