[Цитировать]

    saimonyz
  • 1619
  • Стаж: 9 лет 1 месяц
  • Сообщений: 94
  • Репутация:13

    [+] [-]
naifle

Toggle_Show_or_Hide_Hidden_Files.vbs

Hidden = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden"
SSHidden = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden"
Set Command1 = WScript.CreateObject("WScript.Shell")
Check = Command1.RegRead(Hidden)
If Check = 2 Then
Command1.RegWrite Hidden, 1, "REG_DWORD"
Command1.RegWrite SSHidden, 1, "REG_DWORD"
Else
Command1.RegWrite Hidden, 2, "REG_DWORD"
Command1.RegWrite SSHidden, 0, "REG_DWORD"
End If
Command1.SendKeys "{F5}"

Toggle_Show_or_Hide_Known_File_Extensions.vbs

FileExtension = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt"
Set Command1 = WScript.CreateObject("WScript.Shell")
Check = Command1.RegRead(FileExtension)
If Check = 1 Then
Command1.RegWrite FileExtension, 0, "REG_DWORD"
Else
Command1.RegWrite FileExtension, 1, "REG_DWORD"
End If
Command1.SendKeys "{F5}"

Tweaks.reg

; Контекстное меню Переключатели
[HKEY_CLASSES_ROOT\Directory\Background\shell\Показать/скрыть расширение]
"HasLUAShield"=""
[HKEY_CLASSES_ROOT\Directory\Background\shell\Показать/скрыть расширение\command]
@="WScript C:\\Windows\\Toggle_Show_or_Hide_Known_File_Extensions.vbs"
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Показать/скрыть расширение]
"HasLUAShield"=""
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Показать/скрыть расширение\command]
@="WScript C:\\Windows\\Toggle_Show_or_Hide_Known_File_Extensions.vbs"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Показать/скрыть скрытые файлы]
"HasLUAShield"=""
[HKEY_CLASSES_ROOT\Directory\Background\shell\Показать/скрыть скрытые файлы\command]
@="WScript C:\\Windows\\Toggle_Show_or_Hide_Hidden_Files.vbs"
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Показать/скрыть скрытые файлы]
"HasLUAShield"=""
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\Показать/скрыть скрытые файлы\command]
@="WScript C:\\Windows\\Toggle_Show_or_Hide_Hidden_Files.vbs"

[Цитировать]

    Xirobrin
  • 16748
  • Стаж: 7 лет 2 месяца
  • Сообщений: 57
  • Репутация:0

    [+] [-]
Приветствую всех ! aa
Сделал я все как здесь описано – и все хорошо, и отлично работает !
Но вот одна мелочь у меня не получается, прошу совета как решить эту проблемку, если это решается конечно …
Так как файлов несколько, то я решил упаковать их все в один 7z-SFX для удобства.
С таким кодом:
@Echo off
cd /d %~dp0
regedit /S ShHFF.reg
move /y ShHFF.vbs %WinDir%
exit
Фай реестра отрабатывает, но в КМ компьютера не добавляется !
Тогда как абсолютно похожий комплект но для рабочего стола, отрабатывает нормально.
Пробовал прописать содержимое рег файла прямо в батник, результата нет .
Это какая-то специфика КМ компьютера ?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
47519Это какая-то специфика КМ компьютера ?
Если это X64 система, проблемы могут быть, в зависимости от того, в каком режиме (x32 или x64) запущен батник, изменения могут быть внесены в разные ветки реестра.
Попробуйте добавить в начало батника строку
if defined PROCESSOR_ARCHITEW6432 start %SystemRoot%\Sysnative\cmd.exe /c "%~dpnx0" %* & exit

[Цитировать]

    naifle
  • 762
  • Стаж: 9 лет 6 месяцев
  • Сообщений: 199
  • Репутация:26

    [+] [-]
47519Файл реестра отрабатывает, но в КМ компьютера не добавляется
Через дисм++ поставь твики реестра и перезагрузись.

[Цитировать]

    Xirobrin
  • 16748
  • Стаж: 7 лет 2 месяца
  • Сообщений: 57
  • Репутация:0

    [+] [-]
nikzzzz, В очередной раз aa
Я знаю, что команды для SFX разделяются по разрядности, но что это еще и для реестра относится, не знал..
Вот теперь все заработало, можно собирать файл…
Ps: меня сбило с толку, то, что такой же комплект, но для Р.Стола работает без “унисекс” строчки…

[Цитировать]

    Xirobrin
  • 16748
  • Стаж: 7 лет 2 месяца
  • Сообщений: 57
  • Репутация:0

    [+] [-]
47520в начало батника строку
Привет … aa
Таки появился еще один вопрос…
Строчку нужно добавлять после команды (cd /d %~dp0) или перед ней ?
Вариант 1:
@Echo off
cd /d %~dp0
if defined PROCESSOR_ARCHITEW6432 start %SystemRoot%\Sysnative\cmd.exe /c "%~dpnx0" %* & exit
Вариант 2:
@Echo off
if defined PROCESSOR_ARCHITEW6432 start %SystemRoot%\Sysnative\cmd.exe /c "%~dpnx0" %* & exit
cd /d %~dp0

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Xirobrin,
Без разницы, но второй вариант более правильный.
К стати, желательно жобавить кавычки
cd /d "%~dp0"

[Цитировать]

    Xirobrin
  • 16748
  • Стаж: 7 лет 2 месяца
  • Сообщений: 57
  • Репутация:0

    [+] [-]
Я тоже склонялся ко второму … потому как сама команда (if defined PROCESSOR_ARCHITEW6432 ...) подразумевает, что ей надо быть первой … но и другая команда тоже требует )))
На счет кавычек, не знал … учту, спасибо !

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 3815
  • Репутация:127

    [+] [-]
47554К стати, желательно жобавить кавычки
Кстати, без разницы. Формально, кавычки обязательны. Но практически CD отрабатывает пробелы и кириллицу (например) прямо так.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Ander_73,
Согласен, но пользоваться недокументированными возможностями лучше только в случае крайней необходимости, они, например, могут по разному работать на разных версиях ос.
Да и ситуации могут быть разные, пример
cd "1&2"
cd 1&2
Вторая строка будет обрабатываться некорректно.

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 3815
  • Репутация:127

    [+] [-]
nikzzzz, спецсимволы в именах - это вообще ужас батникописателя. Тут не поспоришь.
Кстати:
47553if defined PROCESSOR_ARCHITEW6432 start %SystemRoot%\Sysnative\cmd.exe /c "%~dpnx0" %* & exit
Мне кажется или это типичный бесконечный цикл? Или после запуска cmd "нативной" битности переменная станет not defined?
... ну, и придраться по мелочи: по-моему %~dpnx0 = %~0

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
47558Или после запуска cmd "нативной" битности переменная станет not defined?
Именно так, при запуске в x64 переменная PROCESSOR_ARCHITEW6432 не существует.
47558по-моему %~dpnx0 = %~0
Да, но %~dpnx0 нагляднее. al

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 3815
  • Репутация:127

    [+] [-]
47560при запуске в x64 переменная PROCESSOR_ARCHITEW6432 не существует
Век живи... aa
---
Действительно, запустил cmd из SysWOW - есть переменная. Запустил нативно - нет её.

[Цитировать]

    Xirobrin
  • 16748
  • Стаж: 7 лет 2 месяца
  • Сообщений: 57
  • Репутация:0

    [+] [-]
nikzzzz, af Продолжение следует … ab
В общем – все ! с добавлением разобрались…
Теперь удалить полностью не получается ))… поясни пожалуйста в чем причина .
Прописываю я удаление верки.
[-HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Показать скрытые файлы и папки]
Ветка удаляется – но ссылка "REG_SZ" на ShHFF.vbs файл остается хоть ты тресни …
.
Какие только варианты я не перепробовал, все равно остаётся !
Всю ветку shell сносить не могу, есть еще и другие записи..

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
Xirobrin, по моему тут всё ясно и понятно... что просите удалить, то и удаляется...
Если не подчищает следы, значит изначально что то где то не так разместили...
Удаляйте значит дополнительно к ветки ещё и отдельные параметры...

Страница 2 из 3


Показать сообщения:    

Текущее время: 23-Ноя 11:00

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы