Проблема:
Я хочу установить для папки по умолчанию значение «Подробнее» для всех папок на моем 64-разрядном компьютере с Windows 8.1 Pro. Я частично решил эту проблему следующим образом:
Настройка просмотра папок по умолчанию (для большинства папок)
Удалите следующие ключи реестра.
HKEY_CURRENT_USER\ Программное обеспечение \ Классы \ Локальные настройки \ Программное обеспечение \ Microsoft \ Windows \ Shell \ BagMRU
HKEY_CURRENT_USER\ Программное обеспечение \ Классы \ Локальные настройки \ Программное обеспечение \ Microsoft \ Windows \ Shell \ Bags
Добавьте следующие записи реестра.
[HKEY_CURRENT_USER\ Программное обеспечение \ Классы \ Локальные настройки \ Программное обеспечение \ Microsoft \ Windows \ Shell \ Bags]
[HKEY_CURRENT_USER\ Программное обеспечение \ Классы \ Локальные настройки \ Программное обеспечение \ Microsoft \ Windows \ Shell \ Bags \ AllFolders]
[HKEY_CURRENT_USER\ Программное обеспечение \ Классы \ Локальные настройки \ Программное обеспечение \ Microsoft \ Windows \ Shell \ Bags \ AllFolders \ ComDlg]
[HKEY_CURRENT_USER\ Программное обеспечение \ Классы \ Локальные настройки \ Программное обеспечение \ Microsoft \ Windows \ Shell \ Bags \ AllFolders \ ComDlg \ {5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}]
"Mode"=dword:00000004 "Vid"="{137E7700-3573-11CF-AE69-08002B2E1262}"
[HKEY_CURRENT_USER\ Программное обеспечение \ Классы \ Локальные настройки \ Программное обеспечение \ Microsoft \ Windows \ Shell \ Bags \ AllFolders \ ComDlgLegacy]
[HKEY_CURRENT_USER\ Программное обеспечение \ Классы \ Локальные настройки \ Программное обеспечение \ Microsoft \ Windows \ Shell \ Bags \ AllFolders \ ComDlgLegacy \ {5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}]
"Mode"=dword:00000004 "Vid"="{137E7700-3573-11CF-AE69-08002B2E1262}"
[HKEY_CURRENT_USER\ Программное обеспечение \ Классы \ Локальные настройки \ Программное обеспечение \ Microsoft \ Windows \ Shell \ Bags \ AllFolders \ Shell]
"FolderType"="NotSpecified"
[HKEY_CURRENT_USER\ Программное обеспечение \ Классы \ Локальные настройки \ Программное обеспечение \ 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} является представлением сведений. Кажется, вы должны указать и идентификатор представления, и режим, а для представления "Подробности" соответствующее значение режима равно 4. Смотрите эту статью ; к сожалению, у меня нет более строгой ссылки (например, от Microsoft).
"FolderType" = "NotSpecified" отключает автоматическое обнаружение типа папки, что, по-видимому, мешает этому решению.
Насколько я могу судить, это относится ко всем физическим папкам.
Известные / Специальные Папки
Однако, похоже, что в Windows есть папка другого типа, называемая "известной" или "специальной" папкой. Обычно Explorer отображает некоторые из этих папок на левой панели или в раскрывающемся списке слева от адресной строки:
Вот список известных идентификаторов папок.
На вашем компьютере вы можете найти специальные папки, перечисленные в:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions
Вы также можете просматривать специальные папки на вашем компьютере с помощью этого инструмента.
Я хочу установить вид папок для всех специальных папок, как я сделал для всех физических папок. Тем не менее, я не могу сказать, как Windows решает, какой вид папки применить к специальной папке.
Вот что я знаю. Предположим, я открываю специальную папку Libraries\Documents, которая имеет GUID FolderDescription {7B0DB17D-9CD2-4A93-9733-46CC89022E7C}. Проводник показывает эту папку в режиме просмотра больших значков, что противоречит представлению, которое я пытался установить для всех папок ранее.
Когда я обновляю 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 относится к другому шаблону папки, например шаблону общей папки, который мы видели ранее. Его зовут Документы.Библиотека и ее можно найти по адресу:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9}
Под этой записью я вижу ключ с именем TopView, а под TopView - шесть ключей с именами 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}», но он отображается только как значение TV_TopViewID в Shell\Bags или в списках TopViews других шаблонов папок. Это не в HKEY_CLASSES_ROOT\CLSID.
Частичное (некрасивое) решение
Я частично решил эту проблему следующим образом. Я не рекомендую пробовать это на вашем компьютере. Если вы это сделаете, пожалуйста, сначала сделайте резервную копию записей.
Удалите следующий раздел реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9}\виды сверху
Добавьте следующие записи реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9}\виды сверху]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9}\виды сверху \{00000000-0000-0000-0000-000000000000}]
"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"
Это делает так Документы.Шаблон папки библиотеки имеет тот же набор TopView, что и общий шаблон папки. Это приводит к тому, что Explorer использует представление папок, которое я указал для общего шаблона папки, обратно в HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders.
Необходимость замены списка TopViews для каждого шаблона папки кажется грубой (как будто я исправляю проблему ниже того места, где я должен) и, возможно, опасной (потому что я точно не знаю, как все это работает).
Резюме
Подводя итог, я хочу сказать Windows применить представление папок по умолчанию ко всем специальным / известным папкам, а также ко всем физическим папкам.
Я также хотел бы знать:
Как Windows определяет тип папки (шаблон папки) для заданного описания папки (специальная папка).
Как Windows определяет вид папки (Подробности, Список и т.д.) Для данного типа папок. Я могу сделать вывод, что он ищет TopView для FolderType, но я не знаю, как он переводит это в представление папок.
Я искал, но нигде не могу найти этот документ.
Спасибо и, пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию.
Изменить: я сказал "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} - это шаблон папки, связанный с библиотеками \ документами.
{82BA0782-5B7A-4569-B5D7-EC83085F08CC} - это TopView с заказом 1, связанным с шаблоном папки.
Я делаю следующее:
Оставь ключи в покое.
Удалите все значения, кроме Vid и Mode.
Установите режим на 4 и Vid на {137E7700-3573-11CF-AE69-08002B2E1262}.
В следующий раз, когда я зайду в «Библиотеки \ Документы», у нее будет представление папки «Подробности». Мне даже не нужно перезапускать Explorer.
Я могу установить виды папок для других специальных папок таким же образом.
Как выясняется, если я просто просматриваю все специальные папки и настраиваю вид папок для каждой, я получаю те же записи в реестре, как если бы я устанавливал их вручную.
Хорошая новость заключается в том, что я могу это сделать, а затем экспортировать HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders и развернуть файл .reg на другом компьютере.
Тем не менее, было бы все же лучше установить вид папки один раз для всех специальных папок.