批处理之家's Archiver

CrLf 发表于 2014-11-26 17:42

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

举个栗子:[code]Dim Shell
Set Shell = CreateObject("Shell.Application")

For Each window In Shell.Windows()
   If LCase(Right(window.FullName,13)) = "\explorer.exe" Then
   
      window.Document.CurrentViewMode = 1
      '设置查看方式为缩略图
      
      window.Document.IconSize = 48
      '设置图标尺寸为 48
      
      window.Document.SortColumns = "prop:-System.DateModified;"
      '设置排序方式为按修改日期逆序排列
      
      window.Document.GroupBy = "System.DateModified"
      '设置分组依据为修改日期
      
      window.Document.SelectItemRelative(0)
      '选中一个比较帅的文件
      
      MsgBox  "标题: " & window.LocationName & vbCrLf &_
             "路径: " & Replace(Mid(window.LocationURL,9),"/","\") & vbCrLf &_
            "选中: " & window.Document.SelectedItems().Count & " 个文件/文件夹"& vbCrLf_
      Exit For
   End If
Next[/code]

CrLf 发表于 2014-11-26 17:43

[i=s] 本帖最后由 CrLf 于 2014-11-26 20:57 编辑 [/i]

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


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

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

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

807979023 发表于 2014-12-4 12:10

[i=s] 本帖最后由 807979023 于 2023-12-7 21:39 编辑 [/i]

谢谢分享!

9zhmke 发表于 2014-12-8 17:55

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

wwwylg 发表于 2019-8-6 14:20

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

czjt1234 发表于 2019-8-7 18:18

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

窄口牛 发表于 2019-9-18 21:33

如何针对所有文件夹设置呢?

9zhmke 发表于 2020-6-27 11:03

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=223663&ptid=33090]7#[/url] [i]窄口牛[/i] [/b]


    作为猜想,我认为只要设置了最外面一层(典型值是“此电脑”、我的文档这一类入口)里面的内容就会跟着成这样了,当然之前也许需要把缓存清掉。

9zhmke 发表于 2020-7-10 12:42

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=158140&ptid=33090]1#[/url] [i]CrLf[/i] [/b]


    为了更好地应用到刚装机的系统,我想把这一段设为可供调用的函数,但却必须要用手工关闭窗口才能缓存设置效果到注册表,直接关进程效果就没有了,只好来请大师指点,如果能找到更好的关闭窗口的方法,就可以直接在RUN里不显示这个窗口,界面整洁多了。

班门弄的斧:[attach]12652[/attach]


后面一段用程序结束打开的这个文件夹,现在的问题是用程序结束打开的窗口后不会产生列表模式缓存,就是说设置没有生效,必须手动关闭才能有效。按道理窗口关闭的指令应该是Windows.Quit或者Windows.Close,但一个没反应另一个出错。

经过尝试搞定了,是我弄错了,Windows.Quit 不能放到Exit for后面去执行。

相对完整点的斧:[attach]12654[/attach]
最终弄的斧:[url]http://bbs.wuyou.net/forum.php?mod=viewthread&tid=421321[/url]

是蓝还是兰 发表于 2023-8-23 14:01

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=158140&ptid=33090]1#[/url] [i]CrLf[/i] [/b]


    大佬  这个详细信息 怎么设置呢

是蓝还是兰 发表于 2023-8-23 14:03

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=158140&ptid=33090]1#[/url] [i]CrLf[/i] [/b]


    这个 选择详细信息

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.