批處理新手入門導讀[視頻教程]批處理基礎視頻教程[視頻教程]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

如何針對所有文件夾設置呢?

TOP

回復 7# 窄口牛


    作為猜想,我認為只要設置了最外面一層(典型值是“此電腦”、我的文檔這一類入口)里面的內容就會跟著成這樣了,當然之前也許需要把緩存清掉。

TOP

本帖最后由 9zhmke 于 2020-7-12 12:34 編輯

回復 1# CrLf


    為了更好地應用到剛裝機的系統,我想把這一段設為可供調用的函數,但卻必須要用手工關閉窗口才能緩存設置效果到注冊表,直接關進程效果就沒有了,只好來請大師指點,如果能找到更好的關閉窗口的方法,就可以直接在RUN里不顯示這個窗口,界面整潔多了。

班門弄的斧:


后面一段用程序結束打開的這個文件夾,現在的問題是用程序結束打開的窗口后不會產生列表模式緩存,就是說設置沒有生效,必須手動關閉才能有效。按道理窗口關閉的指令應該是Windows.Quit或者Windows.Close,但一個沒反應另一個出錯。

經過嘗試搞定了,是我弄錯了,Windows.Quit 不能放到Exit for后面去執行。

相對完整點的斧:
最終弄的斧:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=421321
附件: 您需要登錄才可以下載或查看附件。沒有帳號?注冊

TOP

返回列表
重庆时时开奖直播软件