2016-05-18 1 views
2

非常に厄介なwindows7の動作を取り除きたいと思いますが、プログラムでウィンドウをオーバーライドする以外の方法はないと思います。私はDelphiで快適だと、それはまた、私はこの言語を使用して考えていますシステムプログラミングの多くを行うが、まずは説明させことができるので大きな空のフレームの代わりにフォルダのサブディレクトリを表示するようにウィンドウ7のプレビューウィンドウを変更します。

Windows 7のファイルエクスプローラのプレビューペインがあります(通常、エクスプローラのウィンドウの右側にあります)は、現在選択されているファイルの内容(オフィスファイル、画像、HTML、テキストベースのファイル)を表示します。

例:

Usefull preview pane

しかし、このパネルの迷惑な行動は、フォルダを選択すると、ウィンドウが完全に空のままということです。私はそれを希望

Empty preview pane

選択したフォルダの内容(ファイルとフォルダのアイコンと名前)を表示して、開く必要がないようにします。

私はWindows dllに対処しなければならないと思います。私はそれについてより深く検索しなければならないことを知っていますが、経験豊かなユーザーが、それが不可能であるかどうか、あるいは可能であれば調査を開始する方法や進める方法を教えてください。 他のアドバイスも歓迎します。

もし私がそれをするならば、私はインターネット上でそれを共有することがうれしいでしょう。

+1

途中です。プレビューハンドラはファイルのみに関連付けることができます。 –

+0

@DenisAnisimov:プレビューハンドラはProgIDに登録され、 'Folder' ProgIDにはフォルダのシェル拡張を登録するための' shellex'サブキーがあります。私は*ファイル*プレビューハンドラ( '.doc'ファイル用)を' Folder' ProgIDに登録しました。プレビューペインが開いているフォルダをクリックしたときにWindowsエクスプローラがすぐに一時停止し始めました。 「プレビューなし」と表示されます。その後、ハンドラを削除し、一時停止が消え、プレビューに「プレビューなし」と表示されました。 Windows Explorer *はフォルダのプレビューを表示できます。 –

答えて

3

レジストリ内HKEY_CLASSES_ROOT\FolderのProgIDのカスタムPreview Handler COMオブジェクトとregister itを作成します。

HKEY_CLASSES_ROOT\Folder\shellex\{8895b1c6-b41f-4c1c-a562-0d564250836f} 
(Default) = [REG_SZ] "your CLSID here" 

それは選択の/ IShellItemパスを受け取ることができますので、あなたのハンドラは、IInitializeWithStreamIInitializeWithFileまたはIInitializeWithItemを実装し、そしてべきではありませんフォルダ。その後、そのフォルダのコンテンツを列挙し、必要に応じて実装されたIPreviewHandler UIに表示することができます。

+0

いいですね。私は、LazarusにCOMオブジェクトを実装する方法を知る必要があります。ありがとう – nico

関連する問題