加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

以编程方式在Windows 8上排序文件夹

发布时间:2020-12-13 22:34:48 所属栏目:Windows 来源:网络整理
导读:Windows 8似乎不会在单个文件夹上保留排序顺序.我猜测explorer.exe什么时候终止(比如重启时)这些首选项会被丢弃?打败我,我所知道的是经过一段时间(比如几天),这些偏好完全失去了. 有没有办法在Windows资源管理器中以编程方式重复排序文件夹(选择上下文菜单
Windows 8似乎不会在单个文件夹上保留排序顺序.我猜测explorer.exe什么时候终止(比如重启时)这些首选项会被丢弃?打败我,我所知道的是经过一段时间(比如几天),这些偏好完全失去了.

有没有办法在Windows资源管理器中以编程方式重复排序文件夹(选择上下文菜单中的“排序依据”选项之一)?

这就是说,我在Windows UI中打开了一个文件夹.假设该文件夹当前设置为按“名称”排序,并在运行程序后按大小排序我再次检查Windows资源管理器中的排序顺序,它现在显示为“大小”?

我有一个特定的大文件夹结构,我希望它的所有内容和子文件夹永久按大小排序.因此,我希望在查看它们之前运行此程序,而不必先单独手动重新排序它们.谢谢!

解决方法

排序顺序属于视图,而不属于文件夹.您可以在同一文件夹上打开两个Windows资源管理器窗口,每个窗口都有不同的排序顺序.

要在Windows资源管理器导航到特定文件夹时强制排序,首先将DShellWindowsEvents::WindowRegistered事件挂钩到shellwindows对象,然后每次触发WindowRegistered事件时,通过shell窗口列表枚举并与现有枚举进行比较以查找新窗口资源管理器实例.一旦掌握了新实例,就可以为该实例连接DWebBrowserEvents2::DocumentComplete事件以收听其导航.

导航完成后,DocumentComplete事件将为您提供目标URL,您可以使用该URL来检测目标是否在您的大文件夹结构中.如果是这样,请从Windows资源管理器实例查询IShellBrowser服务,然后调用QueryActiveShellView以获取shell视图.获得shell视图后,对IFolderView2进行QI,然后调用SetSortColumns.

The Automate the Active Windows Explorer or Internet Explorer Window sample on codeproject有大部分代码,只是它在最后调用IShellView::SelectItem来模拟SHOpenFolderAndSelectItems.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读