Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 4
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Peredreifus:
Цитата Fresh96:
Посмотрел в реестре - записи создаются. Но не появляются соответствующие пункты в меню. »
Если у тебя Windows XP, то пунктов ты и не увидишь, она не поддерживает этой фичи. На Висте и Windows 7 работает. »

Поддерживает. Только немного другие ветки реестра нужны.


Код: Выделить весь код
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\shell\HideFileExt\", "Показать расширения", "REG_SZ"  	
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\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\shell\HideFileExt\", "Скрыть расширения", "REG_SZ"  	
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\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\shell\HideFileExt""", 0, True)=0 Then  		
WSHShell.Run "cmd /C REG DELETE ""HKEY_CURRENT_USER\Software\Classes\Directory\shell\HideFileExt"" /f", 0  	
Else  		
' Иначе запускаем этот скрипт с параметром (какой параметр - значения не имеет, главное его наличие)  		
WSHShell.Run """"&WScript.ScriptFullName&""" -argument"  		
' И еще добавим иконочку для красоты  		
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\shell\HideFileExt\Icon", "%SystemRoot%\System32\shell32.dll,69", "REG_SZ"  	
End If  
End if  
Set WSHShell = Nothing  
WScript.Quit(0)
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:38, 18-09-2009 | #98