タブファイラー開発ブログ

Tablacus ExplorerやX-Finderの作者のブログ

ファイル検索 アドオン - Tablacus Explorer

低速で低機能な総当り式のファイル検索のアドオンを作成しました。

このアドオンをインストールすると、F3 キーで検索のダイアログが表示されます。(キーはオプションで変更できます。)

f:id:tablacus:20151208000120p:plain

名前

検索するファイル名を指定します。*.xml等、ワイルドカードが使えます。空の場合は全てのファイルを検索対象にします。

 

コンテンツ

検索するファイルの内容を指定します。空の場合は空の場合は全ての項目を検索対象にします。

 

場所

検索場所です。

 

新しいタブで開く

チェックのある場合は新しいタブで開きます。

 

総当り方式なので標準のインデックス方式を使うWindowsの検索バーでの検索より速度的に不利なので、名前で良い感じにフィルタすることをおすすめします。

 

統合アーカイバ アドオン - Tablacus Explorer

Tablacus Explorerで統合アーカイバプロジェクトのライブラリが使用できるようになりました。

http://www.madobe.net/archiver/

TE64.exeの場合は64bit版、TE32.exeの場合は32ビット版を使用します。

tablacus.hatenablog.com

アドオンの「統合アーカイバ」をインストールしたら、使用するライブラリの設定をオプション画面から行います。

f:id:tablacus:20151124230412p:plain

左下のいくつかのライブラリのテンプレートがあるので選んで追加を押して下さい。

 

名前の先頭の英字部分はライブラリのAPIの基本名です。英文字以降は好きな名前にできます。 

パスの「*」はTE64.exeの場合は「64」に、TE32.exeの場合は「32」になります。dllの場所がshell32等パスの通っている場所でない場合はフルパスで指定します。

※TE64.exeで対象のdllが無く、UNBYPASS.DLLが対応しているライブラリの場合はUNBYPASS.DLLを自動的に使用します。

フィルタは対応する拡張子を指定します。

展開は展開(解凍)するコマンドラインを書きます。展開する機能がない場合は空欄にします。

追加は追加するコマンドラインを書きます。追加する機能がない場合は空欄にします。

削除は削除するコマンドラインを書きます。削除する機能がない場合は空欄にします。

コマンドラインの「%archive%」は対象のアーカイブファイル名、「%path%」は基準ディレクトリ、「%items%」は対象の項目名になります。

64ビット版 統合アーカイバプロジェクト (64bit Common Archiver Library)

64ビットの統合アーカイバプロジェクトのライブラリを調べてみました。


■7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版

http://www16.atpages.jp/rayna/7-zip32_ungarbled/

7z.dll対応版もあり、こちらは7z.dllの対応しているすべての書庫に対応。

rarやlzh等も解凍でき、いろんな書庫に対応できる。


■7-zip64.dll 私家版
■tar64.dll 私家版

http://homepage1.nifty.com/Ayakawa/soft/index.html

7-zip64は7z、zipの解凍、圧縮が可能
tar64はtarの解凍、圧縮が可能


■LMZIP32/64.DLL

http://homepage2.nifty.com/NYanagi/LMZIP32.html

zipの解凍、圧縮が可能


■UNBYPASS.DLL
■unzzip.dll
■7zca.dll

http://homepage1.nifty.com/toro/slplugin.html

UNBYPASSでは32ビット版の統合アーカイバライブラリがあれば、バイパスさせて使用できるようになる。
64ビット版が無くても64ビット版のUnlha32.dllがあればlzhの圧縮ができるようになる。

unzzipはzipの解凍が可能、7zcaは7z、zip以外に7z.dllの対応しているすべての書庫の解凍が可能。
rarやlzh等も解凍でき、いろんな書庫に対応できる。


■Unrar64j
https://github.com/rururutan/unrar32/releases

rarの解凍が可能

C/Migemo - Tablacus Explorer

C言語で作成されたC/Migemoに対応したアドオンができました。

JavaScript版のMigemoより大きな辞書を持っているので、物足りなかった方や他のソフトでC/Migemoを使っている方におすすめです。

反面、辞書が大きいのでJavaScript版に比べて使用メモリは多くなります。

JavaScript版のMigemoとC/Migemo版のMigemoアドオンを両方とも有効にしても、どちらか片方は動きません。使わない方は無効化して下さい。

f:id:tablacus:20151026233125p:plain

アドオンのオプションを開いたら、Get C/Migemo...を押すと

www.kaoriya.net

C/Migemoを配布しているページをブラウザで開きます。

TE32を使っている方はmigemo.dll (32bit)に32ビット版のmigemo.dllを、TE64を使っている方はmigemo.dll (64bit)にダウンロードしてきて解凍したdllファイルを指定します。

辞書ファイルは「migemo-dict」を指定し、文字コードUTF-8の場合は「UTF-8(CP65001)」ボタンを、SHIFT_JISの場合は「SHIFT_JIS(CP932)」押して下さい。

設定が完了したら、「最新の情報に更新」を押すと辞書が更新してテストできるようになります。

 

※フィルタ バーや正規表現/Migemoインクリメンタルサーチ、EverythingでMigemoを使う設定はJavaScript版と共通です。

 

C/Migemoの作者のKoRoN様、便利なライブラリの公開ありがとうございます。

EverythingでもMigemoを使えるようになりました。 - Tablacus Explorer

EverythingアドオンでもMigemoを使えるようになりました。

前回のブログで紹介したようにMigemoアドオンをインストールしてから…

Everythingアドオンのオプションの「Regular Expression/Migemo」にチェックして下さい。

f:id:tablacus:20151022230619p:plain

フィルターバーと同じ要領ですね。

 

前回書き忘れた 正規表現/Migemo インクリメンタルサーチ の機能

インクリメンタルサーチ中に「PGDN」キーで当てはまる次の項目に移動し、「PGUP」キーで当てはまる前の項目に移動します。

 

ローマ字で日本語検索 Migemo - Tablacus Explorer

Migemo: ローマ字のまま日本語をインクリメンタル検索 がTablacus Explorerでも使えるようになりました。

Tablacus Explorerでは JavaScript/Migemo のJavaScriptで実装したMigemoエンジンを使用しています。

 

インストール方法

まず、アドオンの「Migemo」をインストールします。

f:id:tablacus:20151021234446p:plain

次にMigemoのオプションを開き、

f:id:tablacus:20151021234509p:plain

「インストール」を押せば、上記のサイトからMigemoエンジンと辞書をダウンロードしてインストールできます。

f:id:tablacus:20151021234526p:plain

テストの場所でローマ字入力をして、Regular Expressionの場所に日本語を含む正規表現が表示されればOKです。

f:id:tablacus:20151021234720p:plain

Migemoでリスト上での検索を行う場合は、「正規表現/Migemo インクリメンタルサーチ」をインストールして下さい。

f:id:tablacus:20151021234741p:plain

Migemoでフィルタリングしたい場合は、フィルターバー(Innerフィルターバー)のオプションに入り

f:id:tablacus:20151021234809p:plain

「Regular Expression/Migemo」にチェックして下さい。

f:id:tablacus:20151021234938p:plain

日本語のファイルを扱う際に便利ですね。

Migemoの原作者の高林様、JavaScript版の作者のふるかわ様、便利な機能の公開ありがとうございます。

フォルダ ツリーの自動更新の強化2 - INameSpaceTreeControl

前回のふたつ目はAs/Rの作者さんにこちらでOS安定稼動を考えると良くないとアドバイスを頂いたので、Tablacus Explorer 15.10.5から別の方法で実装してみました。

今回の実装は

SHChangeNotifyDeregisterでInterruptレベルの通知をキャッチして………

ツリーに項目を追加する場合は INameSpaceTreeControl::SetItemState(IShellItem *, NSTCIS_EXPANDED, NSTCIS_EXPANDED) で追加する。

ツリーから項目を削除等する場合は NamespaceTreeControl のウインドウに WM_USER + 1 でメッセージを横流しする。

追加の方はまだ良いとして、削除などの方はOSのバージョンアップ等で仕様が変わったらアウトなんですが、SHChangeNotifyで投げるのに比べたら他のアプリに影響しないのでマシかなと。

 ついでに、みもふたもない言い方になりますが、そもそもDOSコマンドのmkdirとか「シェル通知を送らないことで高速化している」という側面もあるので、そっとしておいてあげた方が良いんじゃね?という考え方もあります。

エクスプローラーはmkdir等も対応してて自動的に追加されたりするので、「エクスプローラーはちゃんと動くんですが………」等と言われちゃいがちなのでなんとかしたいなと………

 

機会がありましたら、一緒にご飯したいですね。