【问题标题】:How do I use .NET or the Windows API to change the View columns in a particular folder in Windows Explorer? (Windows 7 and Up)如何使用 .NET 或 Windows API 更改 Windows 资源管理器中特定文件夹中的视图列? (Windows 7 及更高版本)
【发布时间】:2016-04-21 18:27:11
【问题描述】:

在 Windows 资源管理器中浏览文件夹时,我可以使用用户界面将其他列添加到我的视图中,这些列在浏览文件夹时通常不存在,例如“文件扩展名”或“语言”。在 Windows 10 中,您可以通过单击“查看”选项卡、单击“添加列”、单击“选择列...”然后选择所需的列并单击“确定”来执行此操作。

我想做的是以编程方式执行此操作,理想情况下将该列表中的任何列添加到所选目录中,并希望使用元数据填充该列。我正在广泛研究可以实现此目的的方法,例如 Column Handler shell extension,但在 XP 之后放弃了对 IColumnHandler 的支持并且根本无法工作。

从那里,唯一可能的选择是使用 Windows API 中的属性处理程序并直接从注册表中读取值。但是,我不知道该怎么做。我曾尝试在网上找到一些有关如何执行此操作的示例,但这使我陷入了一堆死胡同。我知道这一定很困难,但我相信有人已经设法让它发挥作用。

有没有人有关于如何使用 Windows API 中的属性处理程序将列添加到 Windows 资源管理器文件夹中的视图的示例或指导?我还有其他选择吗?任何反馈都表示赞赏。

【问题讨论】:

    标签: c# .net windows windows-explorer shell-extensions


    【解决方案1】:

    在外壳视图中,您可以通过调用带有 PROPERTYKEY 结构数组的 IColumnManager::SetColumns 来选择列。

    假设您有一个 Windows 资源管理器窗口的 IShellBrowser 接口,调用 GetActiveShellView 来获取外壳视图,然后查询视图对象以获取 IColumnManager(C# 中的强制转换)。

    【讨论】:

      猜你喜欢
      • 2015-03-02
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 2013-09-21
      • 2019-06-08
      • 1970-01-01
      相关资源
      最近更新 更多