スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 

Windows8でzipfldr.dllを使った解凍

PPxのTOROさんが昔、TwitterでWindows8でzipfldr.dllからIPersistFileが使えなくなったと書かれていました。


Tablacus Explorerでもスクリプト(IShellDispatch)を使ったZIPの解凍が行えない場合にzipfldr.dllからIStorageを使って解凍していたので、今回調べてみました。

基本的にはEternalWindowsさんのZIP / IStorageによる展開にzipfldr.dllをLoadLibraryする様な感じで作っています。
詳しくは前にブログに書いたZIPフォルダ機能無効化でも解凍する(Tablacus Explorer)ですね。

確かにWindows 8ではzipfldr.dllから取り出したIStorageからはIPersistFileが使えなくなっていました。IPersistFileの代わりにIInitializeWithFileが使えないかとか、SHCreateStreamOnFileExでIStreamを作ってIStorageに使えないかとか、StgOpenStorageExが使えないとかやっていたら、なんとかIPersistFolderが使えました。

IPersistFile *pPF;
IPersistFolder *pPF2;
if SUCCEEDED(pStorage->QueryInterface(IID_PPV_ARGS(&pPF))) {
  if SUCCEEDED(pPF->Load(vZip.bstrVal, STGM_READ)) {
    *plResult = teExtract(pStorage, vDest.bstrVal);
  }
  pPF->Release();
}
else if SUCCEEDED(pStorage->QueryInterface(IID_PPV_ARGS(&pPF2))) {
  LPITEMIDLIST pidl = teILCreateFromPath(vZip.bstrVal);
  if (pidl) {
    if SUCCEEDED(pPF2->Initialize(pidl)) {
      *plResult = teExtract(pStorage, vDest.bstrVal);
    }
    ::CoTaskMemFree(pidl);
  }
  pPF2->Release();
}

上記のコードのようにIPersistFileが取得できれば、IPersistFile::Load、ダメならIPersistFolderを取得し、zipのパスをLPITEMIDLISTに変換しIPersistFolder::Initializeを使いました。
詳しくはTablacus Exploerのソースをご覧ください。


テストの為にWindows 8でZIPフォルダ機能無効化をするのにWindows 8の圧縮フォルダ機能を無効化する方法を参考にさせていただきました。

TOROさんの方は今はIDataObjectを使う方法で対処しているんだそうです。

それと、今回のTablacus Explorer 14.9.7ではEgg ExplorerのAE85さんにFWF_NOICONSを使うとWindows 7でデスクトップのアイコンが表示できなくなると教えてもらったのでその辺りも調整しました。
 
スポンサーサイト

中国語(繁体字)の言語ファイル

Tablacus Explorerの中国語(繁体字)の言語ファイルを貰いました。
日本語では見慣れない漢字もありますが、なんとなく意味が分かりますね。
「サイズ」が「大小」なのが興味深い。

中国語(繁体字)1
【日本語版Windowsなのでヘッダが日本語】

中国語(繁体字)2
【オプションも中国語(繁体字)】 

クリップフォルダ(Tablacus Explorer アドオン)

X-Finderでお馴染みのクリップフォルダをTablacus Explorerのアドオンで作りました。
クリップフォルダとはいろんな場所のファイルやフォルダを一時的にまとめておける機能です。

cf1.png
クリップフォルダを作りたいフォルダのファイルやフォルダの無い場所で右クリックして「クリップフォルダの作成..」を押してクリップフォルダの作成ダイアログを表示します。

cf2.png
クリップフォルダの名前を付けて「OK」を押すと空のクリップフォルダが作成されます。

cf3.png
作成されたクリップフォルダをダブルクリックか選択してEnterキーを押すとクリップフォルダに入ります。

cf4.png
空のクリップフォルダです。拡張子が「cfu」のファイルです。

cf5.png
他のフォルダからクリップフォルダにドラッグ&ドロップするとそのファイルやフォルダを追加できます。

cf6.png
クリップフォルダから項目を取り除く際は選択して右クリックし、「取除く」を選んで下さい。

一応、削除は本体を削除してしまうので、動作しないようにしています。 

検索 バー関連のアドオン(Tablacus Explorer)

前回はアドレス バー関連だったので、今回は検索 バー関連の情報を書きます。
検索 バー関連のアドオンは4つあります。


■フィルター バー

フィルター バーは最初からインストールされています。
入力ボックスに文字を入力すると、すぐに開いているフォルダでファイル名を使った絞り込みを行います。サブ フォルダ内の絞り込みはできませんが、速度が非常に高速です。
沢山の項目があるフォルダで名前のわかっているファイルを探すのに便利です。


■検索 バー

検索 バーを使うとエクスプローラの検索のような検索をします。(Vista以降)
入力ボックスに文字を入力し、Enterキーか虫眼鏡のアイコンをクリックすると検索します。
他のアドオンに比べて速度は速くありませんが、サブフォルダの検索やファイルの内容の検索が行えます。

Advanced Query Syntax(AQS)に対応していて、例えば、「更新日時:今週」を検索すると今週の項目が検索され、「更新日時:>2014/6/1」とすれば2014年6月1日以降の項目が検索されます。
「更新日時:今週 AND 拡張子:exe」等の複数の項目を検索することもできます。


■Everything

EverythingはEverything Search Engineを使ってハードディスク内のファイル名で高速に検索した結果をTablacus Explorerで開くアドオンです。
入力ボックスに文字を入力し、Enterキーか虫眼鏡のアイコンをクリックすると検索します。

Everything Search Engineをインストールしてから使って下さい。
検索できるのはNTFS形式のドライブに限られますが、かなり高速に検索することができます。ネットワークドライブやCD-ROM等は検索できません。


■Inner フィルター バー
Inner フィルター バー分割画面ごとに表示されるフィルター バーです。
 

アドレス バー関連のアドオン(Tablacus Explorer)

現在、アドレス バー関連のアドオンは5種類あります。

■アドレス バー

addressbar1.png
これは最初からインストールされています。Windows XPのエクスプローラのアドレス バーっぽく作っています。

addressbar2.png
右のボタンのクリックでドライブ一覧が表示されます。

addressbar3.png
アイコンをクリックすると現在のフォルダからのフォルダリストが表示されます。


■パンくずリスト アドレス バー

bcaddress1.png
Windows 7のエクスプローラのアドレス バーみたいなパンくずリスト形式のアドレス バーです。

bcaddress2.png
アドレス バーの所のフォルダ名を押すとそのフォルダにジャンプし、ボタンを押すとそこからのフォルダリストが表示されます。


■シンプル アドレス バー

saddress.png
入力ボックスのみのシンプルなアドレス バーです。


■Inner アドレス バー/Inner パンくずリスト アドレス バー

Inner アドレス バーは分割画面ごとに表示されるアドレス バーです。Inner パンくずリスト アドレス バーも同様に分割画面ごとに表示されます。

inner.png
一番上のアドレス バーが「アドレス バー」、2番めと3番目の分割画面ごとに表示されているのが「Inner アドレス バー」

inner2.png
アドオンの「タブプラス」を使うとInner アドレス バー/Inner パンくずリスト アドレス バーはタブの下に表示されるようになります。
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。