アーカイブ

2008年 7月 4日 のアーカイブ

画像
出来た。
このソフト専用に配布ページを作るほどのものでもないので、直リンクのみで。
http://wantech.ikuto.com/software/hookdnet.zip

あらためてソフトの説明をすると、スタートアップに入れて常駐させておくことで、
エクスプローラをタブ式にするよという、ただそれだけのこと。

動作確認は自宅の64bit版Vistaと、事務所のXPにて。
両方で動くと言うことは、中間であるということは32bit版のVistaでも動くのだろうが、
UACの具合やらで動くとは限らない。
動作に必要な物はランタイム類はよくわからん。
DLL部分はVC++、EXE部分は.NETで作ったので、.NETランタイムが入っていれば大丈夫だろう。
Vistaにははじめから.NETが含まれているが、XPだとインストールする必要がある。

アプリケーション名に良くない単語が盛り込まれているが、普段は表示されないから大丈夫。

自分で使うために作ったものなので、常駐させて自分で使い続けるつもり。
すなわち、自分自身が人柱なわけで、目についた所は随時自分で手直ししていくが、
ちょこっと直してはすぐアップロードとかするだろうし、いちいちどこを直したとか宣言しないで、
密かに随時アップデートみたいな感じになるだろう。
エロペガもそうなのだが、.NETアプリはバージョンを自動でつけてくれるので、
ファイルのプロパティで新しさを判断するのが一番確実。

今作ってるのは、裏エクスプローラではなく、親エクスプローラの64bit対応版だ。

何年か前曖昧な記憶なので、多少間違ってるかも知れないが、
親エクスプローラを作った当時は、IEコンポを使ったタブブラウザが流行り始めた頃で、
他に自分で毎日使うようなソフトは全部タブを導入してみようと思い、
テキストエディタは真魚を作り、動画プレーヤはタブドーガを作り、
そしてエクスプローラは、ファイラを自作するよりも、本物のエクスプローラを捕獲しようという事になった。

親エクスプローラは、良い感じで仕上がっていったのだが、どうも挙動がおかしい点もあった。
エクスプローラ本体の仕様なんだろうが、捕獲されたエクスプローラは時々自動で閉じられてしまう。
ユーザーが閉じる操作をしてないにもかかわらず、勝手に閉じるような状態では使い物にならない。

エクスプローラを子ウィンドウとして捕獲してしまうからそういう問題が起るのであって、
捕獲せず、エクスプローラ窓の下にタブバーを表示するという形にしたのが裏エクスプローラだ。
エクスプローラ窓の下に一定のスペースがないと、タブバーを表示することが出来ないので、
エクスプローラを最大化出来ないように、最大化ボタンを取りはらった。
さらに、「タスクバーに表示しない」かつ「最小化」状態のエクスプローラは、
子ウィンドウ化した状態と同様に、自動で閉じられてしまうので、
最小化ボタンも取りはらった。
結局、裏エクスプローラは、最小化も最大化も出来ないし、たまに切り替えに失敗するという仕様を、
どうにも出来ないままにずっと使い続けることとなった。

今回、64bit版のVistaでエクスプローラをタブ化するにあたり、
裏エクスプローラではなく親エクスプローラの仕組みで行こうとしたのは、
Vistaのエクスプローラでは、長いファイル名のファイルをリネームするときにスクロールのバグがあり、
回避するためにはウィンドウをファイル名以上に横長にしなければいけないので、
時々最大化する必要があり、裏エクスプローラで最大化は出来ないという事があるからだ。
おそらく今作ってるものも、勝手にタブが閉じたりするだろうが、それはしょうがないとあきらめた。

で、実際に64bit版Vistaでエクスプローラを捕獲してみた。
画像
どうやら、エクスプローラを捕獲すると、捕獲した親ウィンドウがエクスプローラ扱いされるようだ。
たとえば、黒を透けさせる処理が働き、タブに書いてある文字が透けるとか。
たとえば、「ファイル>閉じる」を選択した時に、親ウィンドウを閉じてしまうとか。
たとえば、既に開いてるフォルダを開こうとした時、その開いてる窓ではなく親窓をアクティブ化するとか。
こういうのはエクスプローラの仕様なわけで、戦ってどうにかなるものじゃない。
だからあきらめる。
タブを上に配置すると透けて読めなくなるので下に配置するとか、出来る対策はするが、
すべて、回避の対策のみであり、思い通りに動かない事はあきらめる。
それでも、既存のファイラで使い方を覚えるよりはマシという判断。