Alexander A Manaeff -

 
 

VBS. Как спрятать скрытые файлы и обновить текущую папку

Здесь обсуждаются вопросы по программированию на Visual Basic.

Модератор: UncleFather

VBS. Как спрятать скрытые файлы и обновить текущую папку

Сообщение UncleFather » 26 янв 2016 15:52, Вт

Задача:

Необходимо спрятать/показать скрытые файлы и папки, то есть выполнить аналог действия, получаемого при установке галочек «Скрывать защищенные системные файлы» и/или «Показывать скрытые файлы, папки и диски» в Параметрах папок.
01.jpg
После чего необходимо обновить ткущую папку, чтобы сразу были видны произведенные изменения, то есть выполнить аналог нажатия кнопки F5 (Меню «Вид» -> «Обновить»).




Решение:

Скрипт проверяет текущее состояние ключа «Показывать скрытые файлы, папки и диски» и, в зависимости от этого, либо включает либо выключает параметры «Скрывать защищенные системные файлы» и «Показывать скрытые файлы, папки и диски», после чего обновляет текущую папку.

Код: Выделить всё
'Отключаем контроль ошибок
On Error Resume Next

'За отображение скрытых файлов, папок и дисков отвечает ключ реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden
Hidden = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden"

'За отображение защищенных системных файлов отвечает ключ реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden
SuperHidden = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden"

Set WshShell = WScript.CreateObject("WScript.Shell")

'Получаем текущее состояние отображения скрытых файлов, папок и дисков из реестра
CurrentState = WshShell.RegRead(Hidden)

'Если параметр «[b][i]Не показывать скрытые файлы, папки и диски[/i][/b]» установлен (то есть если файлы, папки и диски скрыты),то
If CurrentState = 2 Then

     'Включаем параметр «Показывать скрытые файлы, папки и диски» (то есть показываем скрытые файлы, папки и диски)
     WshShell.RegWrite Hidden, 1, "REG_DWORD"
     'Отключаем параметр «Скрывать защищенные системные файлы» (то есть показываем защищенные системные файлы)
     WshShell.RegWrite SuperHidden, 1, "REG_DWORD"

'Иначе
Else

     'Включаем параметр «Не показывать скрытые файлы, папки и диски» (то есть скрываем скрытые файлы, папки и диски)
     WshShell.RegWrite Hidden, 2, "REG_DWORD"
     'Включаем параметр «Скрывать защищенные системные файлы» (то есть скрываем защищенные системные файлы)
     WshShell.RegWrite SuperHidden, 0, "REG_DWORD"

End If

'Обновляем текущую папку, имитируя нажатие клавиши «F5»
WshShell.SendKeys("{F5}")



За основу скрипта взят распространенный пример «How to show/hide hidden files with a vb script»
Аватара пользователя
UncleFather
Site Admin
 
Сообщения: 1326
Зарегистрирован: 17 авг 2004 16:20, Вт

Вернуться в Visual Basic

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Alexander A Manaeff -
@Mail.ru .