Программно изменяя вид обозревателя в C # - PullRequest
2 голосов
/ 27 октября 2009

Я программно создаю папку, используя C #, и мне нужно установить представление по умолчанию для папки «Миниатюры».

Ответы [ 5 ]

2 голосов
/ 27 октября 2009

Соответствующие ключи реестра перечислены здесь: http://support.microsoft.com/kb/812003

Однако для того, чтобы изменения в этой статье базы знаний вступили в силу, необходимо выбрать «Помнить настройки просмотра каждой папки». Похоже, что для программы было бы «плохим поведением» изменить это без специального запроса пользователя.

Обновление: Для desktop.ini мне никогда не удавалось использовать его; однако, этот сайт, кажется, перечисляет несколько CLSID, которые, возможно, стоит изучить: http://www.xs4all.nl/~hwiegman/desktopini.html

В частности, раздел [ExtShellFolderViews] . Я обернулся, но безуспешно.

0 голосов
/ 06 марта 2014

Согласно этому сообщению вы можете сделать ссылку на shdocvw.dll для запроса текущего IServiceProvider. Затем получите theIShellBrowser -> IShellView -> IFolderView. Если у вас есть IFolderView, вы можете получить / установить текущий режим просмотра папки.

0 голосов
/ 27 октября 2009

Вызов IFolderView :: SetCurrentViewMode с помощью FVM_THUMBSTRIP

Не уверен, из какого окна обозревателя следует запрашивать IFolderView. На рабочем столе пользователя может быть несколько окон проводника, а те, которые работают с более высоким уровнем целостности, лишат вас доступа, если у вас более низкий уровень целостности.

0 голосов
/ 27 октября 2009

Единственный способ манипулировать этим параметром, который я знаю, - это через pInvoke, но, похоже, нет сообщения для установки представления в Thumbnails. Здесь - фрагмент кода, предназначенный для WinXP.

0 голосов
/ 27 октября 2009

Предполагая, что вы делаете это самостоятельно, используя ListView, вы можете либо установить для свойства View значение LargeIcon, либо, если этого недостаточно (вы упоминаете Миниатюры ), вам, вероятно, следует установить OwnerDraw верно для предметов и нарисуйте их самостоятельно.

...