Top  上へ  目次



Ver.4系のβ版(?)Ver.4.50



 通常ならプチメジャーバージョンアップということで、大き目の機能を載せるところなんですが、β進行なので地味に行きます。

 現在のタブの状態を一括で、お気に入りにまとめて登録する系統のコマンドがいくつかあります。
 これらの使い道としては、作業ごとにタブセットを切り替える使い方を想定しています。
 作業ごとに開くフォルダが、ある程度決まってるわけですから、作業単位で切り替えるというのも中々面白い使い方だと思います。

 ただこの機能って、今開いているタブをバックアップしたいという使い方だと問題あるんですよ。
 タブの順番、リストの並び順、表示モード、グループ情報、ナビゲートロックの情報、画面分割状態とかとか綺麗さっぱり忘れちゃうんですね。
 というわけで、今回はタブの状態を状態を完全に復元するためのスクリプトを生成するためのコマンドです。


 この動作を実現するために、スクリプトコマンドに以下の3つが追加されてます。
・SendMessage
・SendMessageAll
・FullStateOpen

 PostMessage系とSendMessage系は、ほとんど同じ動作ですがSendMessage系はコマンド終了まで待ちます。
 もちろん非同期で動作するコマンドは終了を待たないで応答を返してきます。(例:貼り付けなど)
 PostMessageとSendMessageを混ぜると、先にSendMessage系を全て終了させPostMessage系を処理することになります。
 元来スクリプト自体がバックグラウンドで処理されているので、本体と同期動作が必要なSendMessage系の使用は推奨しません。


 FullStateOpenはLastTab2.dat、Window2.histで使用されているウィンドウ情報復元用のテキストです。
 他にも、フォルダ設定ダイアログ/履歴管理などでも、この文字列で管理されています。

 なお、ユーザーさんに使用してもらうことなど全く考慮せず、速度優先の設計のため固定長です。
 かなり使い勝手も悪いですし、機能拡張で予告なく動作が変わる場合もありますので、あまり深追いしすぎないことを推奨します。
 実際の出力サンプルは、追加されたコマンド47026、47027で生成されたものを参照してください。

書式
FullStateOpen=0001|0000|0000|0 1 0 02 00 0 00000098 00000000 00000000 00 00 C:\test|(D1と同じ書式)
               A    B    C    D1                                                     D2
「|」で5分割されており、A-Cはタブ単位の情報、Dはリスト単位の情報になります。
※D2が存在するのは画面分割している場合のみ
※D2とD1は同じ書式

●A-Cはタブ単位の情報
A:ナビゲートロックなら0001、OFFなら0000(前3桁は予備)
B:0000固定(Ver.2は画面分割フラグで後方互換維持のために残っている)
C:グループ番号(前2桁は予備)

●Dはフォルダ単位の情報

D部の書式
1項目 0固定(Ver.1はナビゲートロックフラグで後方互換維持のために残っている)
2項目 フォルダ優先でなければ0、フォルダ優先なら1
3項目 昇順なら0、降順なら1
4項目 表示モード(アイコン:0、一覧:1、詳細一覧:2、簡易詳細:3、詳細:4、並べて表示:5、コンテンツ:6)
5項目 アイコン(アイコン小:0、アイコン中:1、アイコン大:2、縮小版中:3、縮小版大:4、縮小版特大:5)
6項目 0固定(Ver.1は2画面モードフラグで後方互換維持のために残っている)
7項目 ソート種別(As/Rオリジナルの高速ソート種別は99〜0まで予約されている、シェルのソート種別は0〜OSによって上限は異なる)
8項目 予備
9項目 予備
10項目 お気に入りフォルダ番号
11項目 予備
12項目 実体名フルパス
(12項目だけ自由長になります。後方互換のためLastTab2.dat/Window2.histでは11項目目と12項目の間はスペースではなくタブ文字になっていますが、固定長のためどっちでも読めます)

※今後の機能拡張のため、値の範囲チェックによるエラー表示はありません。
 未定義の値は実際に表示を切り替える際に、エラーにならない範囲の値に補正されます。
 補正値が何になるかは保障しませんので範囲内で使用してください。

 ちょっと意地悪な使い方ですが、同じお気に入りタブの番号を持つものを2個開くこともできますが。



 あと、今回も見た目の変更が多いです。
 公開をやめたこともありますし、わりと積極的にWindowsのテーマを適用して旧作のイメージを減らしていってます。
 まぁその、XP機は全くもって蚊帳の外なんですが、各種バーの雰囲気が落ち着いたものになっています。

 ただ、そろそろ老眼が入りかけてる私には、スゲェ見にくいです。
 何でこんなのが流行りなんだか、納得いかない今日この頃です。



 最後に、試験実装の項目です。
 1個のタブが固まっても他のタブに影響を及ぼさないようになれば、かなり幸せだなプロジェクトの一環です。

 Ver.5に向けて完成すればいいかなレベルの、わりと気の長い話です。
 なんせ、とても環境に左右される内容が山盛りなので、個人での検証作業に限界があります。
 少しずつ足場を踏み固めつつ、最終的なゴールを目指したいと思いますので、気長にお付き合いいただけると幸いです。


 今回は、移動しようとするパスがネットワークの場合、ネットワーク先が生きているか事前に確認しています。
 その結果、存在しないネットワークパスを叩いた時のレスポンスが従来よりも速くなっています。
 問題なければこのまま正式採用とし、自動更新などの一覧生成以外の処理にも展開したいと思います。

 こんな分かりにくい項目は「設定オプションなし」にしたいと考えてますが、問題がある場合にもそなえてレジストリ上に設定値は用意しています。
 この動作は以下のレジストリで動作をコントロールされているので、目安箱なり掲示板でご連絡の上でOFFにしてください。
 特にIPv6の環境だったりすると、あまり検証できていないので問題になりそうな予感がしてます。

 無効にするには0を、有効にするには1をセット、初期値は1)
[HKEY_CURRENT_USER\Software\AMA_Soft\Asr\Main001\AppInfo]
"UsePing"=dword:00000000