Wes*_*Wes 4 windows windows-explorer windows-8.1
Windows 8似乎不会在单个文件夹上保留排序顺序.我猜测explorer.exe什么时候终止(比如重启时)这些首选项会被丢弃?打败我,我所知道的是经过一段时间(比如几天),这些偏好完全失去了.
有没有办法在Windows资源管理器中以编程方式重复排序文件夹(选择上下文菜单中的"排序依据"选项之一)?
这就是说,我在Windows UI中打开了一个文件夹.假设该文件夹当前设置为按"名称"排序,并在运行程序后按大小排序我再次检查Windows资源管理器中的排序顺序,它现在显示为"大小"?
我有一个特定的大文件夹结构,我希望它的所有内容和子文件夹永久按大小排序.因此,我希望在查看它们之前运行此程序,而不必先单独手动重新排序它们.谢谢!
排序顺序属于视图,而不属于文件夹.您可以在同一文件夹上打开两个Windows资源管理器窗口,每个窗口都有不同的排序顺序.
要在Windows资源管理器导航到特定文件夹时强制执行排序顺序,首先在shellwindows对象上挂钩DShellWindowsEvents :: WindowRegistered事件,然后每次触发WindowRegistered事件时,枚举shell窗口列表并与现有枚举进行比较以查找新的Windows资源管理器实例.获得新实例后,为该实例连接DWebBrowserEvents2 :: DocumentComplete事件以侦听其导航.
导航完成后,DocumentComplete事件将为您提供目标URL,您可以使用该URL来检测目标是否在您的大文件夹结构中.如果是这样,请从Windows资源管理器实例查询IShellBrowser服务,然后调用QueryActiveShellView以获取shell视图.获得shell视图后,对IFolderView2进行QI,然后调用SetSortColumns.
在codeproject上自动执行活动Windows资源管理器或Internet Explorer窗口示例具有大部分代码,除了它调用IShellView :: SelectItem以在最后模拟SHOpenFolderAndSelectItems.