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

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


Модератор: UncleFather

Аватара пользователя
UncleFather
Site Admin
Сообщения: 1505
Зарегистрирован: 17 авг 2004 16:20, Вт
Контактная информация:

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

Сообщение UncleFather »

Задача:

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

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»


Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram

Изображение
Изображение
Изображение
Изображение