То же самое, только
для расширений файлов (Скрыть/Показать)
Код:
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
' Если скрипт запущен с каким-то параметром, то...
If WScript.Arguments.Count>0 Then
' Проверяем значение в реестре и в зависимости от него либо отображаем расширения, либо наоборот скрываем.
If WSHShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt") = 0 then
' Скрываем расширения
WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt", "1", "REG_DWORD"
' Добавляем пункт в контекстное меню
' В поле command прописываем путь до текущего скрипта с параметром (не важно каким, главное, чтобы он был), чтобы..
' ..скрипт понял, что ему нужно не удалить ветку реестра, а изменить
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\HideFileExt\", "Показать расширения", "REG_SZ"
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\HideFileExt\command\", "WScript.exe """&WScript.ScriptFullName&""" -argument", "REG_SZ"
' Обновляем окно эксплорера, чтобы увидеть результат
WSHShell.SendKeys "{F5}"
Else
' Показываем расширения
WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt", "0", "REG_DWORD"
' Добавляем пункт в контекстное меню
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\HideFileExt\", "Скрыть расширения", "REG_SZ"
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\HideFileExt\command\", "WScript.exe """&WScript.ScriptFullName&""" -argument", "REG_SZ"
' Обновляем окно эксплорера, чтобы увидеть результат
WSHShell.SendKeys "{F5}"
End If
Else
' Если запись в реестре есть, то удаляем наш раздел
If WSHShell.Run("cmd.exe /C REG QUERY ""HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\HideFileExt""", 0, True)=0 Then
WSHShell.Run "cmd /C REG DELETE ""HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\HideFileExt"" /f", 0
Else
' Иначе запускаем этот скрипт с параметром (какой параметр - значения не имеет, главное его наличие)
WSHShell.Run """"&WScript.ScriptFullName&""" -argument"
' И еще добавим иконочку для красоты
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\HideFileExt\Icon", "%SystemRoot%\System32\shell32.dll,69", "REG_SZ"
End If
End if
Set WSHShell = Nothing
WScript.Quit(0)