読者です 読者をやめる 読者になる 読者になる

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

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

無線LANで接続したアンドロイドのフォルダをネットワークドライブにする

今回はアンドロイドのフォルダをネットワークドライブにするを書いてみます。

WebDAVはもともとマイクロソフトで開発された技術なのでWindowsでも使うことができます。
しかし、アンドロイドのWebDAVSSLで接続されているのではないため、レジストリを変更してWindowsの設定を変更する必要があります。

この方法はレジストリを変更する必要がありますが、ネットワークドライブが割り振られるため、あふwやNyanFi、だいなファイラーといったそのままではMTP接続できないファイラーでも使えます。

※ Tablacus Shell Susie Plug-in (axshell) を使えば読み込みと閲覧はできましたが、削除や追加などの処理はできませんでした。

 

まず、Windowsレジストリを変更して、httpのWebDAVを使えるようにしましょう。
レジストリエディタを以下の場所を開きます。レジストリの変更は慎重に行ってください。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

f:id:tablacus:20161117221655p:plain

BasicAuthLevelの設定を 2 に変更します。

f:id:tablacus:20161117215445p:plain

変更できたら、Windowsを再起動します。

アンドロイドにWebDAVサーバーをインストールして実行します。これは前回のTotal Commanderのプラグインを使った場合と全く同じです。

アンドロイドのプレイストアで「webdav server」で検索してWebDAV Serverをインストールします。

play.google.com

f:id:tablacus:20161110205510p:plain

WebDAV Serverを実行します。

f:id:tablacus:20161110205540p:plain

真ん中のボタンを押してWebDAVサーバーを開始します。

f:id:tablacus:20161110205624p:plain

サーバーを開始したら表示されるURLアドレスをメモします。

この場合は「http://192.168.0.106:8080」です。

では、このWebDAVをネットワークドライブ「W:」に割り振ってみましょう。

Tablacus Explorerで「F10」を押してファイル名を実行して実行を実行します。

net use W: http://192.168.0.106:8080/

net use コマンドでドライブ名とさっきメモしたURLアドレスを入力して「OK」をクリックします。

f:id:tablacus:20161117215832p:plain

ネットワークドライブが割り振られたら完了です。

f:id:tablacus:20161117215905p:plain

ネットワークドライブを削除するには

net use W: /delete

を実行します。

あふw

f:id:tablacus:20161117215944p:plain

NyanFi

f:id:tablacus:20161117220000p:plain

だいなファイラー

f:id:tablacus:20161117220707p:plain

 

無線LANで接続したアンドロイドのフォルダにアクセスする - Tablacus Explorer

WebDAVを使うと無線LANで接続したアンドロイド(Android)のフォルダにアクセスできるようになります。

まず、アンドロイドにWebDAVサーバーをインストールして実行します。

アンドロイドのプレイストアで「webdav server」で検索してWebDAV Serverをインストールします。

play.google.com

f:id:tablacus:20161110205510p:plain

WebDAV Serverを実行します。

f:id:tablacus:20161110205540p:plain

真ん中のボタンを押してWebDAVサーバーを開始します。

f:id:tablacus:20161110205624p:plain

サーバーを開始したら表示されるURLアドレスをメモします。

この場合は「http://192.168.0.106:8080」です。

次に以下のサイトからTotal CommanderのWebDAVプラグインをダウンロードします。

Total Commander - Plugins

WebDAVの隣の「32+64 bit」をクリックして「webdav.zip」をダウンロードします。

f:id:tablacus:20161110205850p:plain

ダウンロードした「webdav.zip」を適当なフォルダに展開します。

次にTablacus ExplorerでTotal Commander ファイルシステムプラグイン アドオンをインストールします。

まず、ヘルプ(H)→アドオンを入手

f:id:tablacus:20161110210144p:plainTotal Commander ファイルシステムプラグインの「インストール」をクリック

f:id:tablacus:20161110210219p:plain

左ペインの「アドオン」をクリックしてアドオン画面に移動し、Total Commander ファイルシステムプラグインの「オプション」をクリック

f:id:tablacus:20161110210356p:plain

「参照...」をクリック

f:id:tablacus:20161110210524p:plain

さっき展開したwebdav.zipの「davplug.uwfx」を選択して「開く(O)」をクリック

f:id:tablacus:20161110210601p:plain

成功すると情報欄に様々な情報が表示されるので、「追加」をクリック

f:id:tablacus:20161110210711p:plain

「OK」をクリック

f:id:tablacus:20161110210823p:plain

「OK」をクリックしてアドオンの追加が完了します。

f:id:tablacus:20161110210847p:plain

アドレス バーに「\\\WebDAV」と入力して「Enter」を押します。

f:id:tablacus:20161110211436p:plain

「Ctrl」を押しながら「K」を押してフォルダ作成画面を開きます。(最近インストールした方は「F7」でもOK)

f:id:tablacus:20161110212117p:plain

適当な名前を付けて「OK」を押します。

f:id:tablacus:20161110212248p:plain

設定画面になるので、メモしたURLアドレスを「Connect to」に入れます。

そして、Send/Receive accents in URLs as UTF-8 Unicodeにチェックします。(チェックしないと日本語ファイルが文字化けします。)

「OK」を押します。

f:id:tablacus:20161110212332p:plain

名前を付けたフォルダに移動するとアンドロイドのフォルダにアクセスすることができます。

f:id:tablacus:20161110212626p:plain

あとは適当なフォルダに移動したり、ファイルを取り出したり、入れたりできます。

f:id:tablacus:20161110212735p:plain

 

ListViewの一覧表示の幅を調整する

ListViewの一覧表示の幅を調整するには、ListView_SetColumnWidth で iCol を 0 にすれば設定できます。

しかし、バグだと思うんですが、最初の項目に移動しても半分切れて見えないみたいに左右がずれてしまう場合があるんです。
そんな訳でX-FinderとかTablacus Explorerでは以下のようなコードで対処しています。

ListView_SetColumnWidth(m_hwndLV, 0, 1);
ListView_SetColumnWidth(m_hwndLV, 0, nWidth);
ListView_EnsureVisible(m_hwndLV, ListView_GetNextItem(m_hwndLV, -1, LVNI_ALL | LVNI_FOCUSED), FALSE);

 
一度、幅を 1 にしてから指定したい幅を指定しています。そして、フォーカス位置に表示位置を移動しています。

今回のTablacus Explorerの調整でx64で一覧表示の際に自動的に文字列の最も長いものにあわせるのが上手くいかないので自前で幅を設定するようにしたら、このおかしな動作が出たのでした。
そういえば、X-Finderでもなにか対処した覚えがあったなと思い出して、対処方法をソースを引っ張り出してきました。

詳しくは Tablacus Explorerのソース をご覧ください。

Total Commander ファイルシステムプラグイン アドオン - Tablacus Explorer (9/15追記あり)

Tablacus ExplorerでTotal Commanderのファイルシステムプラグイン(File system extensions)が使用できるようになりました。

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

Total Commander - Plugins

上記サイトで[32+64 bit]の物は32bit版、64bit両方対応しています。

適当なフォルダにダウンロードしたプラグインを展開して置いておきます。

アドオンのオプションを開いて「wfx」ファイルを指定するために「参照」ボタンを押します。

f:id:tablacus:20160915234625p:plain

wfxファイルを選択すると以下の様にパスにwfxのパス、名前に名前が入ります。

※64bit版の場合もwfxを選択してください。(但し実行の際にはwfx64が読み込まれます)

「追加」を押して追加します。

f:id:tablacus:20160915234816p:plain

wfxの対応している機能が「情報」に表示されます。

f:id:tablacus:20160915234927p:plain

「OK」を押すと完了です。

では、ファイルシステムプラグインを使ってみましょう。アドレスバーに「\\\」を入力します。

f:id:tablacus:20160912234936p:plain

ここにインストールされているファイルシステムプラグイン(FSプラグイン)が表示されます。

CloudをダブルクリックするとCloudプラグインに入ります。

f:id:tablacus:20160912235111p:plain

新しい接続先を作るにはフォルダを作ります。(F7はTotal Commanderのフォルダを作るキーです。)

Tablacus Explorerの場合はデフォルトで「Ctrl+K」です。ただ、ここで接続先を作ったり、削除したり、訂正するには、このプラグインの仕様でTablacus Exploererを管理者で実行している必要があります。

通常権限で実行している場合は、管理者権限で実行し直してください。

Total Commander ファイルシステムプラグイン 1.01からは設定ファイル(ini)の保存場所の設定を行うように調整できたので管理者権限で実行する必要はなくなりました。

(9/15追記)

f:id:tablacus:20160912235433p:plain

新規フォルダを作成するダイアログで接続先の名前を入力したら、「OK」を押します。

f:id:tablacus:20160912235528p:plain

接続先のダイアログが表示されます。接続先とユーザー名を入力してください。

□Store login credential はチェックしない方が良いと思います。まだ、このTablacus Explorerのアドオンで暗号化して保存する機能を作成していないので、Tablacus Explorerを終了するとパスワードはディスクに保存されません。

「OK」を押すと接続先ができます。

f:id:tablacus:20160912235933p:plain

できたフォルダでクラウドドライブに接続できるようになります。

このフォルダを作ってしまえば、管理者権限でなくても問題なく使えるようです

 

他にもLinuxのドライブをそのまま覗けたり、WebDAVのドライブがマウントできたりするプラグインがあります。

エクスプローラの機能を使ってもWebDAVにアクセスできますが、Total Commanderのプラグインの方が快適に使用できました。

また、プラグインによって管理者でしか動かないものや、管理者権限でないとアクセスする情報が減ったりするものがありました。(ドライブを直接覗くなどシステムに深く関わるプラグインLinuxのドライブが見えたりするもの等)

ただ、管理者権限で使うとドラッグ&ドロップなどの他のソフトとの連携に問題がでるのでずっと管理者という使い方はおすすめできませんが…

 

(9/15追記)

Total Commander ファイルシステムプラグイン 1.01からは設定ファイル(ini)の保存場所の設定を行うようにしたので、前のバージョンで保存した情報がそのまま読み込めません。

古い情報は「C:\Winodws」に保存されています。そのiniファイルをTablacus Explorerのconfigフォルダに移動してください。

 

Cloud プラグイン → tccloud.ini

WebDAV プラグイン → tcwebdav.ini

SFTP プラグイン → sftpplug.ini

 

Tablacus Explorerのconfigフォルダ開く方法はヘルプ(H)→configでOKです。

f:id:tablacus:20160916000328p:plain

 

 

Total Commander 圧縮プラグイン アドオン - Tablacus Explorer

Tablacus ExplorerでTotal Commanderの圧縮プラグイン(Packer extensions)が使用できるようになりました。

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

Total Commander - Plugins

上記サイトで[32+64 bit]の物は32bit版、64bit両方対応しています。

適当なフォルダにダウンロードしたプラグインを展開して置いておきます。

アドオンのオプションを開いて「wcx」ファイルを指定するために「参照」ボタンを押します。

f:id:tablacus:20160904225016p:plain

wcxファイルを選択すると以下の様にパスにwcxのパス、名前に名前が入ります。

※64bit版の場合もwcxを選択してください。(但し実行の際にはwcx64が読み込まれます)

「追加」を押して追加します。

f:id:tablacus:20160904225118p:plain

正しくインストールされているか確認するには「オプション...」を押します。

f:id:tablacus:20160904225535p:plain

エラーが表示されなければOKです。

「OK」を押すと完了です。

f:id:tablacus:20160904225616p:plain

フィルタは空欄でOKです。扱うファイルを限定したい場合にのみ指定して下さい。

 

Total Commanderの圧縮プラグインは統合アーカイバSusieの書庫プラグインと同じような感じですが、公式にユニコードや64bitに対応していたり、統合アーカイバみたいに個別対応する必要がなかったりする辺りがメリットですね。

もちろん削除や圧縮にも対応しています。

実装に関してはSetProcessDataProc等をしっかり使っておかないとコールバックがないのにコールバックしてしまうプラグインが結構あり動作が不安定になったのでハマりました。

PackFilesやDeleteFilesの際にはhArcDataをINVALID_HANDLE_VALUE(-1)にしてSetProcessDataProcを呼んでいます。

 

ファイルシステムプラグイン(File system extensions)の方も要望が来ていて面白そうな拡張が多いので対応したいと思っています。

Shell execute hook アドオン - Tablacus Explorer

このアドオンは「エクスプローラの代わりに開く」に類似したアドオンです。

レジストリに登録するので、Tablacus Explorerを開いていない場合も動作します。

但し、レジストリに設定を書き込み、System32フォルダにdllファイルをコピーしますので、ポータブルで使いたい方は使用しないでください。

 

f:id:tablacus:20160728230550p:plain

設定はShell execute hookアドオンのオプションで行います。

EnableShellExecuteHooksと32bit、64bitのフックしたいものにチェックし、パスにTablacus Explorerを指定します。

OKを押して設定を変更するとUACの許可ダイアログや次のダイアログが表示されます。

f:id:tablacus:20160728230944p:plain

PCを再起動すると設定が適用されます。

 

※このアドオンのアンインストール方法

すべてのチェックをオフにしてパスを空にしてOKを押してください。

 

★Tips

このアドオンを設定後はアドオンがインストールされていますので、このアドオンを削除してもかまいません。

このアドオン削除後にアンインストールする場合はもう一度、アドオンをインストールして、オプションから上記のアンインストール処理を行ってください。

 また、アドオン設定画面で無効化しても無効化されません。

 

TE32.exeを実行している場合は64bitのチェックは変更できません。

64ビットWinodwsの場合は32bitにチェックで32bitアプリ、64bitにチェックで64bitアプリから起動するエクスプローラを監視します。

 

パスにTablacus Explorerの代わりにX-Finderのパスを入れるとエクスプローラの代わりにX-Finderが起動します。

 

Shell execute hookを使っていない場合はエクスプローラが起動します。その場合は「エクスプローラの代わりに開く」も併用してください。

選択が無い場合はフォーカス項目を選択して実行する - Tablacus Explorer

某所で{Enter}を押した際に選択が無くても、フォーカス項目のフォルダに移動したいという要望があったので作ってみました。

 

・選択が無い場合はフォーカス項目を選択して実行する

var Selected = FV.SelectedItems();
if (!Selected.Count) {
  FV.SelectItem(FV.FocusedItem, SVSI_SELECT);
}
te.OnDefaultCommand(FV);

 

f:id:tablacus:20160716211641p:plain