问题:
我想将 Windows 8.1 Pro 64 位计算机上所有文件夹的默认文件夹视图设置为“详细信息”。我已部分解决了此问题,如下所示:
设置默认文件夹视图(适用于大多数文件夹)
删除以下注册表项。
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags
添加以下注册表项。
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags]
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders]
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\ComDlg]
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\ComDlg\{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}]
"Mode"=dword:00000004 "Vid"="{137E7700-3573-11CF-AE69-08002B2E1262}"
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\ComDlgLegacy]
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\ComDlgLegacy\{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}]
"Mode"=dword:00000004 "Vid"="{137E7700-3573-11CF-AE69-08002B2E1262}"
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell]
"FolderType"="NotSpecified"
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}]
"Mode"=dword:00000004 "Vid"="{137E7700-3573-11CF-AE69-08002B2E1262}"
请注意,如果您尝试此操作,则需要重新启动 explorer.exe 才能使文件夹视图设置生效:
taskkill /f /im explorer.exe
start explorer.exe
我没有一个参考资料可以解释这一点;我是根据几个可能不完整或部分错误的参考资料拼凑起来的。
无论如何,据我理解这些条目(如果我错了,请纠正我):
Shell/ComDlg/ComDlgLegacy 意味着我希望将这些设置应用于资源管理器和文件对话框。
{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7} 是通用文件夹模板,您可以在以下位置找到:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{5c4f28b5-f869-4e84-8e60-f11db97c5cc7}
{137E7700-3573-11CF-AE69-08002B2E1262} 是详细信息视图。似乎必须同时指定视图 ID 和模式,而详细信息视图对应的模式值为 4。请参阅本文;不幸的是我没有更确切的参考(例如来自微软的)。
“FolderType”="NotSpecified" 关闭自动文件夹类型发现,这似乎会干扰该解决方案。
据我所知,这将“详细信息”文件夹视图应用于所有物理文件夹。
已知/特殊文件夹
但是,Windows 似乎还有另一种类型的文件夹,称为“已知”或“特殊”文件夹。Explorer 通常会在左窗格或地址栏左侧的下拉列表中显示其中一些文件夹:
这里是已知文件夹 ID 的列表。
在您的计算机上,您可以找到以下列出的特殊文件夹:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions
您还可以使用以下方式查看计算机上的特殊文件夹此工具。
我想为所有特殊文件夹设置文件夹视图,就像我为所有物理文件夹所做的那样。但是,我不知道 Windows 如何决定将哪种文件夹视图应用于特殊文件夹。
这是我所知道的。假设我打开特殊文件夹 Libraries\Documents,其 FolderDescription GUID 为 {7B0DB17D-9CD2-4A93-9733-46CC89022E7C}。Explorer 以大图标视图显示此文件夹,这与我之前尝试在所有文件夹上设置的文件夹视图相矛盾。
当我刷新 regedt32 时,我看到 Windows 添加了以下注册表项:
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\1]
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\1\Shell]
"TV_FolderType"="{FBB3477E-C9E4-4B3B-A2BA-D3F5D3CD46F9}"
"TV_TopViewID"="{82BA0782-5B7A-4569-B5D7-EC83085F08CC}"
"TV_TopViewVersion"=dword:00000001
TV_FolderType 值指的是另一个文件夹模板,就像我们之前看到的通用文件夹模板一样。它的名字是 Documents.Library,可以在以下位置找到:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9}
在该条目下,我看到一个名为 TopViews 的键,TopViews 下有六个具有 GUID 名称的键,其中一个与我们之前看到的 TV_TopViewID 值匹配:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\\{fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9}\TopViews\\{82ba0782-5b7a-4569-b5d7-ec83085f08cc}]
"ColumnList"="prop:0(34)System.ItemNameDisplay;0System.DateModified;0System.ItemTypeText;0System.Size;1System.DateCreated;1System.ItemFolderPathDisplay;1System.Author;1System.Category;1System.Keywords;1System.Title"
"Order"=dword:00000001
"SortByList"="prop:System.ItemNameDisplay;-System.DateModified"
"GroupBy"="System.ItemSearchLocation"
"LogicalViewMode"=dword:00000001
"PrimaryProperty"="System.ItemSearchLocation"
"Name"="@shell32.dll,-34817"
“顺序”= 1 值表明选择此视图是因为它在此文件夹模板中排名第一。
我不知道 Windows 如何根据此“TopView”信息决定应用大图标文件夹视图。我在注册表中搜索了“{82ba0782-5b7a-4569-b5d7-ec83085f08cc}”,但它仅作为 Shell\Bags 中的 TV_TopViewID 值出现,或者出现在其他文件夹模板的 TopViews 列表中。它不在 HKEY_CLASSES_ROOT\CLSID 中。
部分(丑陋的)解决方案
我已经部分解决了这个问题,如下所示。我不建议在你的电脑上尝试此操作。如果你这样做,请先备份相关条目。
删除以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9}\TopViews
添加以下注册表项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9}\TopViews]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9}\TopViews\{00000000-0000-0000-0000-00000000000}]
"ColumnList"="prop:0(34)System.ItemNameDisplay;0System.DateModified;0System.ItemTypeText;0System.Size;1System.DateCreated;1System.Author;1System.Keywords;1System.Title" "Order"=dword:00000000 "LogicalViewMode"=dword:00000001 "Name"="NoName"
这样,Documents.Library 文件夹模板就拥有与通用文件夹模板相同的 TopView 集。这样 Explorer 就会使用我在 HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders 中为通用文件夹模板指定的文件夹视图。
必须替换每个文件夹模板的 TopViews 列表似乎很粗糙(就像我在我应该修复的下游问题一样)并且可能很危险(因为我不知道这一切是如何运作的)。
概括
总而言之,我想告诉 Windows 将默认文件夹视图应用于所有特殊/已知文件夹以及所有物理文件夹。
我也想知道:
Windows 如何确定给定 FolderDescription(特殊文件夹)的 FolderType(文件夹模板)。
Windows 如何确定给定 FolderType 的文件夹视图(详细信息、列表等)。我可以推断它会查找 FolderType 的 TopView,但我不知道它如何将其转换为文件夹视图。
我一直在寻找,但在任何地方都找不到有关此内容的记录。
谢谢您,如果我可以提供更多信息,请告诉我。
编辑:我说“Windows 7 或更高版本”,因为我收集了在 XP 和 7 之间更改的注册表项。
编辑:
更好的解决方案
我找到了一种更好的方法来设置特殊文件夹的文件夹视图,尽管它不如在普通文件夹上设置文件夹视图那么优雅。
假设我浏览到特殊文件夹 Libraries\Documents。如果不存在以下注册表项,Windows 会创建它们:
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{FBB3477E-C9E4-4B3B-A2BA-D3F5D3CD46F9}
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{FBB3477E-C9E4-4B3B-A2BA-D3F5D3CD46F9}\{82BA0782-5B7A-4569-B5D7-EC83085F08CC}
"Rev"=dword:00000003
"FFlags"=dword:41200001
"Vid"="{0057D0E0-3573-11CF-AE69-08002B2E1262}"
"Mode"=dword:00000001
"LogicalViewMode"=dword:00000001
"IconSize"=dword:00000010
"Sort"=hex:(omitted for brevity)
"ColInfo"=hex:(omitted for brevity)
{FBB3477E-C9E4-4B3B-A2BA-D3F5D3CD46F9} 是与 Libraries\Documents 关联的文件夹模板。
{82BA0782-5B7A-4569-B5D7-EC83085F08CC} 是与文件夹模板关联的顺序为 1 的 TopView。
我执行以下操作:
不要动钥匙。
删除除 Vid 和 Mode 之外的所有值。
将模式设置为 4,将 Vid 设置为 {137E7700-3573-11CF-AE69-08002B2E1262}。
下次我浏览 Libraries\Documents 时,它有“详细信息”文件夹视图。我甚至不必重新启动 Explorer。
我可以以相同的方式设置其他特殊文件夹的文件夹视图。
事实证明,如果我只是浏览所有特殊文件夹并在每个文件夹上设置文件夹视图,我最终会得到与手动设置相同的注册表项。
好消息是我可以这样做,然后导出 HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders 并将 .reg 文件部署到另一台机器。
不过,最好还是为所有特殊文件夹设置一次文件夹视图。