[ 新規に投稿する ]

トラブル対策の設定にかかわらずウィンドウが必ずアクティブに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"bbbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
0002  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"bbbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
0003  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"bbbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
0004  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"bbbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 ( 以下繰り返し )
1021  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"bbbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
1022  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"bbbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
1023  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"bbbbbb"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
1024  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"bbbbbb"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の起動するだけの場合、トラブル対策のオプションOFFは一定の効果はあるようでした。
WScript.Sleep(5000);
new ActiveXObject("WScript.Shell").Run( "\"c:\\program files\\hidemaru\\hidemaru.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 側の仕様が原因のようですので、当方で何かウィンドウを管理できる外部ユーティリティを
探すことを検討いたします。


[ ]

[ 新規に投稿する ]