トラブル対策の設定にかかわらずウィンドNo.40173
fzok4234 さん 22/12/14 04:10
 
ファイルを開く際に重い強調表示などで描画に時間がかかって秀丸エディタのウィン
ドウが
フリーズ状態になっている間に、他のアプリのウィンドウをアクティブにしておくと、
描画の
完了と同時に秀丸エディタのウィンドウが必ず強制的にアクティブになってしまいま
す。

再現方法として、まず予め「動作環境」->「環境」で正規表現 DLL を HmJre.dll に
設定して
おきます。
        ↓
次に、拡張子 .test に対応するファイルタイプ別の設定 Test を登録の上、この
「デザイン」の
「保存/読込」で以下の test.hilight の定義ファイルを読み込みます。

/<HilightMulti>
/0014,00000002,00,5C,00010003,"(?<=^(?:(?:(?:(?:(?:[^\"]*[^\"']*[^\"\\(]*)*)
*)*)*)*)\"",00010003,"\"(?=(?:(?:(?:(?:(?:[^\"\\)]*[^\"']*[^']*)*)*)*)*)*$)"

        ↓
次に、テスト用のファイル test.test を新規作成して、内容を以下のようにします。

0001  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"b
bbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
0002  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"b
bbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
0003  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"b
bbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
0004  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"b
bbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 ( 以下繰り返し )
1021  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"b
bbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
1022  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"b
bbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
1023  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"b
bbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
1024  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"b
bbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

        ↓
カーソルをこのファイルの末尾の所に移動させてから秀丸エディタを全終了させます。
        ↓
何でも構わないのでウィンドウを持った別アプリを起動させます。
        ↓
以下のコマンドラインで秀丸エディタの起動と同時に test.test を開きます。
hidemaru "test.test"
        ↓
直ちに Alt + Tab キーで別アプリのウィンドウをアクティブにして、ここで何か適
当な作業を
します。
        ↓
10 数秒後、秀丸エディタで test.test の描画が完了するタイミングで秀丸エディタ
のウィンドウが
強制的にアクティブとなって作業中の別アプリのウィンドウが非アクティブとなって
しまって作業が
妨げられます。

「動作環境」->「トラブル対策」->「その他のトラブル対策」の「起動直後に必ずア
クティブ化する」を
Off にしても全く効果がありませんでした。


環境は、
 ・秀丸エディタ: 9.20β5 Float x64
 ・HmJre.dll: 5.31
 ・OS: Windows 10 Pro 1909 x64
 ・CPU: Intel Core i7 8700K
 ・GPU: NVIDIA GeForce GTX 1080
です。



[ ]
RE:40173 トラブル対策の設定にかかわらずNo.40180
秀丸担当 さん 22/12/14 17:56
 
hilightファイルと、テキストファイルで再現させることができました。
他のアプリが操作中に確実にアクティブにするという動作は、Windows95くらいは普
通にできたのすが、Windows XPかもっと前だった気がしますが、Windowsのシステム
の判断で普通はできないようになっています。
Windowsが操作中でないと判断したときはアクティブになったりして、Windowsの裁量
によるものだと思います。
確実にアクティブにするのは、秀丸スタートメニューの操作や、秀丸メールの起動時
パスワードなど、かなり特殊なことをしてやらないとできないようなことのはずです。
秀丸エディタの起動時のアクティブのオプションは、Windows95か98くらいのそれく
らいのときのオプションを残しているだけのようなもので、それほど特殊なことはし
ていないです。
なので、Windowsの判断でアクティブにしないと判断されればできないといった程度
のレベルになっています。

wscript.exeで、以下のtest1.jsの起動するだけの場合、トラブル対策のオプションO
FFは一定の効果はあるようでした。
WScript.Sleep(5000);
new ActiveXObject("WScript.Shell").Run( "\"c:\\program files\\hidemaru\\hide
maru.exe\"");

wscript.exeで、以下のtest2.jsだとAは裏ですが、Bは強制アクティブになるようです。
WScript.Sleep( 5000);
WScript.Echo("A");
WScript.Sleep( 5000);
WScript.Echo("B");
秀丸エディタの場合、いったん起動してAの後のB相当だと思うのですが、Windowsの
判断基準はどうなっているのかわからないです。
Windows全般の話なので、Windowsの判断基準を調整できるところがどこかにあっても
よさそうな気がしますが、どこかにあったら教えてほしいです。

[ ]
RE:40180 トラブル対策の設定にかかわらずNo.40185
fzok4234 さん 22/12/14 18:55
 
詳細な調査ありがとうございます。

> Windowsが操作中でないと判断したときはアクティブになったりして、Windowsの裁
>量に
> よるものだと思います。

> 秀丸エディタの場合、いったん起動してAの後のB相当だと思うのですが、Windowsの
> 判断基準はどうなっているのかわからないです。

> Windows全般の話なので、Windowsの判断基準を調整できるところがどこかにあって
>もよさそうな
> 気がしますが、どこかにあったら教えてほしいです。

どうやら OS 側の仕様が原因のようですので、当方で何かウィンドウを管理できる外
部ユーティリティを
探すことを検討いたします。



[ ]