API для переключения “Выставочных скрытых файлов, папок и дисков”

Есть ли функция в Windows API для переключения опции "Show hidden files, folders and drives" в Windows Explorer (Инструменты>> Опции Папки...>> вкладка View).

Я знаю о связанном ключе реестра, но изменение, которое не имело бы непосредственного эффекта. Ключ: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Hidden

При попытке сделать это от C#, но вопроса не является определенным для языка.

6
задан James McNellis 19 April 2010 в 00:00
поделиться

4 ответа

Я не знаю API, но ключ реестра - HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Advanced \ Hidden . Из экспериментов кажется, что значение 1 означает показ, а значение 2 означает скрытие.

0
ответ дан 17 December 2019 в 00:07
поделиться

Вы можете попробовать варианты, предложенные ОП в этой теме, а именно:

Either

 SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);

or

 RefreshPolicyEx(False, RP_FORCE);

or

 SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, integer(pchar('Policy')), SMTO_NORMAL or SMTO_ABORTIFHUNG, 5000, c1);

Их нет в .NET C# API, поэтому вам придется использовать DllImport

Edit: formatting

4
ответ дан 17 December 2019 в 00:07
поделиться

В дополнение к комментарию, который я добавил к исходному вопросу - если вы делаете это, например, для OpenFileDialog, о котором вы говорите to pop open показывает эти файлы - не делайте этого.

В этом случае вам лучше P / Вызвать GetOpenFileName и установить соответствующий параметр (OFN_FORCESHOWHIDDEN (см. enum для связанной темы) во флагах ] Структура OpenFileName .

Таким образом, вы воздействуете только на ваше приложение в нужное время

2
ответ дан 17 December 2019 в 00:07
поделиться

SHGetSetSettings

Структура SHELLSTATE fShowAllObjects BOOL TRUE для отображения всех объектов, включая скрытые файлы и папки. FALSE, чтобы скрыть скрытые файлы и папки.

fShowSysFiles BOOL TRUE для отображения системных файлов, FALSE для их скрытия.

Spy ++ сообщает, что в окна проводника отправляется сообщение WM_SETTINGCHANGE.

1
ответ дан 17 December 2019 в 00:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: