修改 windows 7 预览窗格以显示文件夹的子目录而不是大空框

Modify windows 7 preview pane to display a folder's subdirectories instead of a big empty frame

我想摆脱一个非常烦人的 windows7 行为,我认为除了以编程方式覆盖 windows 之外别无他法。

因为我对 delphi 很满意,而且它在系统编程中也可以做很多事情,所以我正在考虑使用这种语言,但让我们先解释一下:

在 windows 7 文件资源管理器中有一个预览窗格(通常位于任何资源管理器 window 的右侧)显示当前 selected 文件的内容如果支持(办公文件、图片、html 和基于文本的文件)。

示例:

但是这个面板的一个烦人的行为是当你 select 一个文件夹时,面板仍然完全是空的:

我希望它显示 selectd 文件夹的内容(文件和文件夹图标和名称),这样就无需打开它。

要做到这一点,我认为我必须处理 windows dll。我知道我将不得不对此进行更深入的搜索,但我希望一些有经验的用户告诉我这是否绝对不可能,或者如果可能的话从哪里开始调查或如何进行。 也欢迎任何其他建议。

如果我设法做到了,我很乐意通过互联网分享它。

为注册表中的 HKEY_CLASSES_ROOT\Folder ProgID 创建自定义 Preview Handler COM object and register it

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

您的处理程序应根据需要实施 IInitializeWithFile or IInitializeWithItem, and not IInitializeWithStream, so it can receive the path/IShellItem of a selected folder. Then you can enumerate that folder's content and display it in your implemented IPreviewHandler UI。