【要望】メソッド/プロパティ追加依頼No.03621
Suezo さん 12/12/07 10:19
 
いつも便利に使用させてもらっています。

スクリプトで、タブの状態によって処理を実行/スキップしたいので
下記の情報を取得したいです。

@タブのロック状態
Aタブの閉じるの禁止状態
B親のPATH

・ロックしたタブは処理する必要がないのでスキップしたい。
 例:全タブに対して「ツリーHomeキー」で親へ移動する処理をしたいが
   ロックしたタブだと、新規タブが開いてしまう。

・閉じるの禁止していないタブかつ親のPATHが「デスクトップ」の場合
 私の使用方法だと作業フォルダなので、スキップしたい。


あと、ヘルプのコマンド一覧に「フィルタを全て解除」がありませんでしたので追加
お願いします。

以上、検討よろしくお願いします。

[ ]
RE:03621 【要望】メソッド/プロパティ追No.03622
秀丸担当 さん 12/12/07 14:31
 

>スクリプトで、タブの状態によって処理を実行/スキップしたいので
>下記の情報を取得したいです。
>
>@タブのロック状態
>Aタブの閉じるの禁止状態
>B親のPATH

これらの情報が取得できる方法があったらいいということでネタにさせていただ
きます。

>あと、ヘルプのコマンド一覧に「フィルタを全て解除」がありませんでしたので追加
>お願いします。

その通りでした。
ご指摘ありがとうございます。
追記させていただきます。

[ ]
RE:03622 【要望】メソッド/プロパティ追No.03641
Suezo さん 12/12/12 12:31
 
>これらの情報が取得できる方法があったらいいということでネタにさせていただ
>きます。

V1.04β2での実装ありがとうございます。

でこのメソッドを使おうかと思ったのですが、その前に下記のスクリプト(全タブ親
へ移動)が
うまく動作しません。(最後のタブのみ実行されます)
Sleep()も入れてみたのですが変わりませんでした。
アドバイスお願いします。

TabMax = GetTabCount();
for (i = 1; i <= TabMax; i++){
    Command("タブ" + i);
    Command("ツリーHomeキー");
}

※コマンド一覧に ツリーHomeキー/ツリーENDキー の説明が
 ありませんでしたので追加お願いします。

※このスクリプトを実行したら No.03614のウィンドウが最小化される
 現象が何度か再現しました。(かざぐるマウスを終了しても発生)
 新規ウィンドウでタブ5個ぐらい表示。全てCドライブのフォルダ。
 XP SP3/Win7 32Bit版の両方で確認

以上、よろしくお願いします。

[ ]
RE:03641 【要望】メソッド/プロパティ追No.03642
秀丸担当 さん 12/12/12 14:42
 

調べてみたところ、「ツリーHomeキー」コマンドは、キー操作と同じことをして
いて、フォルダツリー上のキー操作は連続した操作は無視して最後の一度だけ処
理するようになっているため、スクリプトでも同じようになっていました。
例えば通常のキー操作でツリーで上下矢印キーを連続して押すと、その間はすぐ
には反映せず、最後に押したものが遅延して確定します。
スクリプトの場合は即時に動くように修正させていただきます。

ヘルプのご指摘ありがとうございます。
追記しておきます。

ウィンドウが小さくなるのは、かざぐるマウスを入れてしばらく経っていますが
いまのところこちらで起きていないです。
ちなみにこういった常駐系のソフトは本体を終わらせてもDLLはロードされたま
まになっていることがあるので、秀丸ファイラーClassic自体も再起動する必要
があります。
β2で上級者向け設定に「デバッグ」を常に表示させるようにしました。
ここで「現在の状況をdump.txtに出力する(O)!」を押すと、出力されます。
dumpファイルには、現在秀丸ファイラーClassicにロードされているDLLも表示さ
れます。
もし差し支えなければこの内容を送ってもらえると原因を絞ることができるかも
しれないです。
送っていただける場合、"PEH00775@nifty.com"まで秀丸担当宛であることを書い
て送ってもらえると助かります。

[ ]
RE:03642 【要望】メソッド/プロパティ追No.03643
Suezo さん 12/12/12 15:37
 
>スクリプトの場合は即時に動くように修正させていただきます。

よろしくお願いします。

>もし差し支えなければこの内容を送ってもらえると原因を絞ることができるかも
>しれないです。

メールしました。
解析よろしくお願いします。

[ ]
RE:03643 【要望】メソッド/プロパティ追No.03644
秀丸担当 さん 12/12/12 16:37
 

dump受け取りました。
ありがとうございます。

dumpファイルによりますと、常駐系のソフトで気になるものが二つありました。
原因かどうかはまだわかりませんが、一応書いておきます。

1つはxkeymacで、「Roll-up/Unroll」の機能が、言われている症状に非常によ
く似ているようです。
タイトルバーだけになり、タイトルバーだけのものをサイズ変更できるので、た
だサイズが小さくなっただけのウィンドウに見えます。

もう1つはPasterで、マウス操作を奪って何かすることはあるようですが、該当
する機能があるかどうかは不明でした。
Pasterのインストール直後、最初のヘルプ画面が出てから何かをクリックしよう
としたら、同じことが再現できたように見えました。
同じことをしても再現せず、直前にxkeymacの操作もしたりしていたので、勘違
いだったのか不明です。
Pasterを入れてしばらく様子を見てみます。

[ ]
RE:03643 【要望】メソッド/プロパティ追No.03648
秀丸担当 さん 12/12/13 16:09
 

V1.04β4で、調査用の処理を入れました。
ウィンドウサイズがほぼになろうとするとき、メッセージが出るようにしました。
メッセージが出たときにdumpを出力するように選ぶと、詳しいことがわかり、お
手数ですがもし出たら送ってもらえると助かります。
また、正式版になるときにはメッセージは出ないようにすると思いますが、その
場合でもウィンドウサイズがほぼゼロになるのを未然に防ぎます。

[ ]
RE:03648 【要望】メソッド/プロパティ追No.03649
Suezo さん 12/12/13 17:56
 
>メッセージが出たときにdumpを出力するように選ぶと、詳しいことがわかり、お
>手数ですがもし出たら送ってもらえると助かります。

発生しましたので、メールで添付しました。
確認よろしくお願いします。

[ ]
RE:03649 【要望】メソッド/プロパティ追No.03653
秀丸担当 さん 12/12/14 14:45
 

受け取りました。
ありがとうございます。
dumpファイルにより、起きているタイミングはわかりましたが、この件は以前に
あったツリーの親とロックがずれる問題と一緒に発生しているようです。
β4でゼロになるのを未然に防ぐようにしました。
そもそもなぜそうなるのか不明で、上級者向け設定の「動作ログを記録する」を
ONにすると、β3と同じように小さくなるタイミングでdumpを出力できるので、
もしまだ何か起きる場合お手数ですがまた送ってもらえると助かります。

[ ]
RE:03653 【要望】メソッド/プロパティ追No.03668
Suezo さん 12/12/16 22:12
 
>β4でゼロになるのを未然に防ぐようにしました。
>そもそもなぜそうなるのか不明で、上級者向け設定の「動作ログを記録する」を
>ONにすると、β3と同じように小さくなるタイミングでdumpを出力できるので、
>もしまだ何か起きる場合お手数ですがまた送ってもらえると助かります。

了解しました。メインで使用しているPCは「動作ログを記録する」を
ONにしておき、再現したらメールします。

タブ切り替え時に発生していたので、β4にして下記エージング用スクリプトで
タブ切り替え&更新を1万回以上実施してみましたが再発はしてません。

エージング用スクリプト(30タブで実施)

var TabMax =GetTabCount();
for (j=1;j<=50;j++){
  for (i=1;i<=TabMax;i++){
    Command("タブ" + i);
    Command("最新の情報に更新");
    Command("最後にスクロール");
    Command("次のタブ");
    Command("最新の情報に更新");
    Command("前のタブ");
    Command("最新の情報に更新");
    Command("次の分割");
    Command("最新の情報に更新");
    Command("先頭にスクロール");
  }
  for (i=TabMax;i>0;i--){
    Command("タブ" + i);
    Command("最新の情報に更新");
    Command("先頭にスクロール");
    Command("前のタブ");
    Command("最新の情報に更新");
    Command("次のタブ");
    Command("最新の情報に更新");
    Command("次の分割");
    Command("最新の情報に更新");
    Command("最後にスクロール");
  }
}

[ ]