透けちゃった

1632 letters | 1336 views | コメントする

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

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

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

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

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

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

たぶん関連のある記事:

コメントは終了しています。