【要望】ウィンドウオープン時の自動起動No.10334
mac さん 22/08/23 13:48
 
自動起動スクリプトのイベントは、現状「ファイル一覧の選択変更後」のみ(*)とな
っています。
ここにイベント「自身のウィンドウがオープンした時」を新設できないでしょうか。

(*)オプション > 上級者向け > スクリプト > 自動起動スクリプト


背景:
スクリプトで新規ウィンドウを開いた際に、"開かれた新規ウィンドウ側"で処理を行
いたいケースがあるのですが
現状では新規ウィンドウ側でスクリプトを自動実行させる手段がなさそうでした。

なお、setStaticVariable()のnumOption=1で作成できるウィンドウ共有の静的変数を
経由して、
元ウィンドウ側のスクリプトで得たデータを、新規ウィンドウ側で自動起動したスク
リプトへ受け渡す
...みたいなことを考えています。


ぜひ一度ご検討いただけるとありがたいです。

[ ]
RE:10334 【要望】ウィンドウオープン時のNo.10335
秀丸担当 さん 22/08/23 15:18
 
自動起動スクリプトは確かに1種類しかないです。
そういったものもあったらいいということで、ご意見参考にさせていただきます。

現状で、外部から新しくウィンドウが起動するのではなく、秀丸ファイラーClassic
自身から起動するとしたら、HmFilerClassic.exeを/iと/xオプション付きで起動する
方法があります。
/aオプションでコマンドライン上でパラメータを渡す方法もあります。

例:
js:new ActiveXObject("WScript.Shell").Run("\""+fullName+"\" /i /a123 /x \"j
s:message(getArg(0));\"");

[ ]
RE:10335 【要望】ウィンドウオープン時のNo.10336
mac さん 22/08/24 17:23
 
お返事ありがとうございます。

教えていただいた手法を試したところ、おおむねやりたかったことが実現できました。
ありがとうございました。

ただ、新たに解決したいことが出てきたのでこちらに書かせていただきます。

1) 自動起動スクリプトと/xオプション指定のスクリプトの兼ね合いについて
自動起動スクリプト「ファイル一覧の選択変更後」を有効にしている場合、/iオプシ
ョン付きかつ/xオプション付きでもう一つの秀丸ファイラを起動させたタイミングで
下記のメッセージがポップアップしたりしなかったりします。
また、その際に新しく開いた側の秀丸ファイラーが異常終了したりしなかったりしま
す(元のウィンドウには影響しません)。
この挙動をなんとかしたいのですが、まずは再現するかどうかをご確認いただけない
でしょうか?
※秀丸ファイラーClassic Version 1.78 Beta 4 を利用しています

ポップアップタイトル: エラー
メッセージ: スクリプト実行中のため2重にスクリプトの実行はできません。


2)「タブごとのフォルダ枠」について
同設定項目は全ウィンドウ共通設定で、どのウィンドウ上で変更しても全てのウィン
ドウに対して即座に変更が反映されます。
また、同設定項目を ON→OFF に変更すると各フォルダ枠に設定されている親フォル
ダの情報が失われてしまい以後同設定をONにしても復元できません(ひとつひとつ手
動で再設定する必要がある)。

普段は「タブごとのフォルダ枠」を ON で利用していて本件で開いた新規ウィンドウ
では OFF で利用したいのですが、上記のとおりOFFにした場合のペナルティがあるた
めしかたなく表示したままにしています。

・そこで要望なのですが「タブごとのフォルダ枠」の設定を「タブの分割方向(*)」
のように各ウィンドウで個別に持たせることは可能でしょうか?
  また、同設定項目の状態をスクリプトから読み取る手段の追加は可能でしょうか?
・あるいは、オプション > 全般 > ウィンドウ > ウィンドウ状態の詳細 > 2番目以
降に起動したウィンドウ、の設定項目に「タブごとのフォルダ枠なし」を追加するこ
とは可能でしょうか?

(*) タブの分割方向については Config.splitMode で参照・設定が可能ですが、変更
結果は他のウィンドウには影響しません。
余談になりますが、Config.splitMode はヘルプに明記されていないものの 3 を設定
することで「田の字」になります。
一方で Command('タブの分割方向切り替え') は左右/上下切り替えのトグル動作しか
できないようです。


それから素朴な疑問なのですが、新しいウィンドウを開く手段は下記のとおりいくつ
かありますが、何れの手段で開いたとしても「秀丸ファイラの2つ目以降のウィンド
ウ」として等しく扱われる認識で間違いないでしょうか?

・ウィンドウを開く手段
A: フォルダのコンテキストメニュー
B: フォルダツリーでフォルダをShift+クリック
C: iオプション付きで2つ目の秀丸ファイラを起動
D: num1=7としてopenメソッドを実行

[ ]
RE:10336 【要望】ウィンドウオープン時のNo.10339
秀丸担当 さん 22/08/25 10:26
 

自動起動と/xを両方したら、2重実行のエラーが出ることは確認できました。
異常終了は再現できなかったのですが、そうなってしまうとしたらバグということに
なります。
とりあえずエラーメッセージを出すこと自体があまりよくなさそうなので、何も出さ
ないようにしてみます。

タブごとのフォルダ枠は、全てのウィンドウに反映されますが、反映しないように変
更してしまってもいいかもしれません。
設定としては記憶され、次の起動から適用されるというのでもいい気がします。
設定なしでそのようにしてみようと思います。
スクリプトとして読み取る方法は無いですが、configオブジェクトにあるとしたら、
現在の状態を表すものではなく、記憶されている設定を表すものになると思います。
2番目以降のウィンドウで出さない設定もあったらいいです。
splitModeの田の字は3でした。
[タブの分割方向切り替え]は左右/上下の切り替えだけになっています。これを変更
する予定はいまのところ無いです。

2番目以降のウィンドウとして扱われるのは、言葉のままですが、既にウィンドウが
あって、新しいウィンドウがもう一つできれば、2番目以降のウィンドウです。
操作はAは何かわからないですが、新しいウィンドウで開く操作であれば新しいウィ
ンドウです。
Bは[新規タブ等]の設定で違います。
CやDは新しいウィンドウです。

[ ]
RE:10339 【要望】ウィンドウオープン時のNo.10352
mac さん 22/08/29 20:02
 
お返事ありがとうございます。

エラーの再現確認ありがとうございます。
追加で調査した結果、ファイルフォーカス変更後に自動起動スクリプトの遅延時間経
過前に秀丸ファイラーのダイアログを表示させ、遅延時間経過まで表示させ続けた
ケースでも再現することがわかりました。なお、この再現手段では異常終了すること
はありませんでした。
異常終了の要因ですが、もしかしたら/xオプションで指定したスクリプトにてNum1=5
指定(新規分割
)によるOpenメソッド実行が関連しているかもしれません。そもそも本件問い合わせ
でやりたかったのは別ウィンドウでサブフォルダ群を一括でそれぞれ分割表示させる
ことでしたが、サブフォルダが一つだけの場合はOpenコマンドを使わないからなのか、
異常終了することはありませんでした。

タブごとのフォルダ枠については「設定が元ウィンドウとは関係なく裏で切り替わっ
ている状態」になるのだとすれば、その後秀丸ファイラーを再起動させた際にひとつ
目のウィンドウに「タブごとのフォルダ枠:非表示」が反映されてしまう気がします
(事故の元)。
その場合「2番目以降のウィンドウで出さない設定」のほうが安全で使いやすい気が
していて、個人的にはこちら側を推したいです。

ウィンドウについては、手段を問わず2番目以降のウィンドウとして等価に扱われる
とのことで理解しました。chromeブラウザー等ではプロファイルを指定して起動させ
ると独立した別プロセスとして立ち上がるので、そのような扱いになってしまわない
のかを気にしていましたが、杞憂だったようで安心しました。


よろしくおねがいします。

[ ]
RE:10339 【要望】ウィンドウオープン時のNo.10353
mac さん 22/08/29 20:07
 
すみません。
補足です。

>秀丸ファイラーのダイアログを表示させ
と書きましたが、オプションダイアログ、新規フォルダ(ダイアログ)で実際に再現
確認できています。
OSのプロパティダイアログでは再現しなかったので、秀丸ファイラーの任意のダイア
ログが対象になると思います。

[ ]
RE:10353 【要望】ウィンドウオープン時のNo.10354
秀丸担当 さん 22/08/30 11:49
 
詳しい情報ありがとうございます。
二重実行のエラーは出さないようにしてみているのですが、異常終了するパターンが
あって再現するということでしょうか。
そういうことだとしたら、起動時のopen(...,5);と自動起動を組み合わせてみたりし
たのですが、再現できなくていまのところ不明です。
もしdumpが出力されたというようなメッセージが出ていたら、dumpを"taki@maruo.co.
jp"まで送っていただけると助かります。
または、再現するスクリプトがあったら教えてもらえると助かります。

[ ]
RE:10354 【要望】ウィンドウオープン時のNo.10355
mac さん 22/08/31 09:38
 
これまでの報告は V1.78β4 にて再現したものになります。(申し訳ありませ
ん。。。)

最新の V1.78β7 をインストールして、二重実行のエラーを通知するポップアップが
発生しなくなったことを確認しました。
同ポップアップに付随して発生していた異常終了も、少なくとも上のツリーに記載し
た内容のスクリプトにおいて発生しなくなりました。


また、タブごとのフォルダ枠の表示・非表示切り替え操作が他のウィンドウに即時反
映されなくなることも確認しました。
しかしながら、上のツリーに記載したとおり「見た目と設定が相違している状態」が
発生する以上、秀丸ファイラー再起動時に意図せず親フォルダ情報が失われる事故の
要因と成り得ます。
ここからはとりあえずお伝えしたくて書いているのでまだ検証できてはいませんが、
下記のような手続きでその対策になるような気がしています。

<トリガースクリプト>
1) /savereg-only オプション付きで秀丸ファイラを起動([非表示]の設定が保存さ
れる)
2) /x /i オプション付きで秀丸ファイラを起動  ・・・新しいフォルダがレシー
バーブスクリプトを伴って開く

<レシーバースクリプト>
1) タブごとのフォルダ設定を切り替え(表示→非表示)・・・元ウィンドウには影
響しない
2) /restore-only オプション付きで秀丸ファイラを起動 ([非表示]の設定が復元さ
れる)・・・元ウィンドウ及びレシーバースクリプト実行中のウィンドウには影響し
ない

※/savereg-onlyでのファイル保存処理がトリガースクリプトの手続きとは非同期で
行われるのだとすれば(この仮定はおそらくtrue)、レシーバースクリプト側での/r
estore-onlyでの読み出し処理に間に合うかどうか心配ではあります。


上記はうまくいったとしてもかなりアクロバットな手続きになってしまうので、下記
についても引き続きご検討いただけるとありがたいです。
・オプション > 全般 > ウィンドウ > ウィンドウ状態の詳細 > 2番目以降に起動し
たウィンドウ、の設定項目に「タブごとのフォルダ枠なし」を追加


よろしくおねがいします。

[ ]
RE:10355 【要望】ウィンドウオープン時のNo.10357
秀丸担当 さん 22/08/31 17:01
 
 V1.78β7以降ではおそらく大丈夫のようで、詳しい状況のことありがとうございます。
2番目のウィンドウでの、タブごとのフォルダ枠なしのオプションをV1.78β8で追加
してみています。

[ ]
RE:10357 【要望】ウィンドウオープン時のNo.10360
mac さん 22/09/03 19:50
 
V1.78β8 のリリースありがとうございます。
さっそくインストールして下記にチェックを入れてみました。
・オプション > 全般 > ウィンドウ > ウィンドウ状態の詳細 > 2番目以降に起動し
たウィンドウ > タブごとのフォルダ枠なし

期待通り、新規ウィンドウでタブごとのフォルダ枠が非表示になり、元ウィンドウ側
にも影響が出ることはなくとても利用しやすいです。
ありがとうございました!

--
ここからは余談になります。
前回お伝えした「/save-only 及び /restore-only による .hfcreg を介した設定復
元手続き」ですが、自分の予想とは異なる結果になりました。
上記のとおりV1.78β8で新設いただいた設定項目で目的を達成できているのであまり
突っ込んで検証はしていませんが、奇妙な挙動を示したので念のためお伝えするもの
です。
・/restore-only での設定復元結果は全てのウィンドウに即時反映される。
・新規ウィンドウ側のタイトルバーに表示されていた「(サブ)」の文字が消える。
(全てのウィンドウが一つ目のウィンドウ扱いになっている???)
・復元元の設定はタブごとのフォルダ枠が「表示」のはずなのに、復元結果は「非表
示」になる。

[ ]