正版王中王香港资料新手入门导读[视频教程]正版王中王香港资料基础视频教程[视频教程]VBS基础视频教程
[正版王中王香港资料文件精品]正版王中王香港资料版照片整理器[正版王中王香港资料文件精品]纯正版王中王香港资料备份&还原驱动在线第三方下载
返回列表 发帖

[原创] VBS修改文件夹窗口查看方式、排序方式、分组依据

举个栗子:
  1. Dim Shell
  2. Set Shell = CreateObject("Shell.Application")
  3. For Each window In Shell.Windows()
  4. ? ?If LCase(Right(window.FullName,13)) = "\explorer.exe" Then
  5. ? ?
  6. ? ?? ?window.Document.CurrentViewMode = 1
  7. ? ?? ?'设置查看方式为缩略图
  8. ? ?? ?
  9. ? ?? ?window.Document.IconSize = 48
  10. ? ?? ?'设置图标尺寸为 48
  11. ? ?? ?
  12. ? ?? ?window.Document.SortColumns = "prop:-System.DateModified;"
  13. ? ?? ?'设置排序方式为按修改日期逆序排列
  14. ? ?? ?
  15. ? ?? ?window.Document.GroupBy = "System.DateModified"
  16. ? ?? ?'设置分组依据为修改日期
  17. ? ?? ?
  18. ? ?? ?window.Document.SelectItemRelative(0)
  19. ? ?? ?'选中一个比较帅的文件
  20. ? ?? ?
  21. ? ?? ?MsgBox??"标题: " & window.LocationName & vbCrLf &_
  22. ? ?? ?? ?? ? "路径: " & Replace(Mid(window.LocationURL,9),"/","\") & vbCrLf &_
  23. ? ?? ?? ?? ?"选中: " & window.Document.SelectedItems().Count & " 个文件/文件夹"& vbCrLf_
  24. ? ?? ?Exit For
  25. ? ?End If
  26. Next
复制代码
3

评分人数

本帖最后由 CrLf 于 2014-11-26 20:57 编辑

window.Document 下 CurrentViewMode、SortColumns、GroupBy 的值见下表(不完全,事实上我也不知道去哪里查完整的):


Document.CurrentViewMode
1、2、5、7 缩略图
? ? ? ? 缩略图状态下可使用 Document.IconSize 设置任意大小
? ? ? ? 16 小图标
? ? ? ? 48 中等图标
? ? ? ? 96 大图标
? ? ? ? 256 超大图标
3、列表
4、详细信息
6、平铺
8、内容


Document.SortColumns(- 为逆序,如 prop:System.ItemNameDisplay; 和 prop:-System.ItemNameDisplay; 是相反的顺序)
prop:System.ItemNameDisplay;
名称
prop:System.DateModified;
修改日期
prop:System.ItemTypeText;System.ItemNameDisplay;
类型
prop:System.Size;
大小


Document.GroupBy
System.ItemNameDisplay
名称
System.DateModified
修改日期
System.ItemTypeText
类型
System.Size
大小
System.Null
(无)

TOP

再次求助.

以下运行成功:
  1. Dim Shell
  2. Set Shell = CreateObject("Shell.Application")
  3. For Each window In Shell.Windows()
  4. ? ?If LCase(Right(window.FullName,13)) = "\explorer.exe" Then
  5. ? ?? ?window.Document.CurrentViewMode = 1
  6. ? ?? ?'以上设置查看方式为图标
  7. ? ?End If
  8. Next
复制代码
以下运行失败:
  1. Dim Shell
  2. Set Shell = CreateObject("Shell.Application")
  3. For Each window In Shell.Windows()
  4. ? ?If LCase(Right(window.FullName,13)) = "\explorer.exe" Then
  5. ? ?? ?window.Document.SortColumns = "prop:-System.DateModified;"
  6. ? ?? ?'设置排序方式为按修改日期逆序排列
  7. ? ?End If
  8. Next
复制代码

TOP

曾经为了分析这个东西,跟踪了好久的注册表和操作,只弄了个大概。谢谢大侠的分享!

TOP

这个帖子很有用,谢谢楼主。

TOP

这个帖子很有用,谢谢楼主。

QQ 20147578

TOP

返回列表