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

Компьютерный форум OSzone.net » Изменение внешнего вида Windows » Оформление Windows XP » Разное - Добавление пользовательских пунктов в контекстное меню (файлы, папки и т.д.)

Ответить
Настройки темы
Разное - Добавление пользовательских пунктов в контекстное меню (файлы, папки и т.д.)

Пользователь


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

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


Изменения
Автор: Amigos
Дата: 21-09-2009
Описание: орфография
Добрый день форумчане, мне очень нужно узнать, как можно с помощью реестра или другим способом добавить в контекстное меню проводника пункты Показать/скрыть расширение файлов, скрытые файлы и т.д?
А можно и такое чтобы "Создать папку" всегда стояла на первой строке меню?
Спасибо всем

-------
If Begin then End; else End.


Отправлено: 02:40, 22-03-2009

 

Аватара для Stayshayder

Пользователь


Автор проектов


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

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


Особо не вчитывался в тему, но как я понял здесь разбираемся с тем, как в контекстное меню добавить свои пункты. Ну что ж, попробую помочь Вам в решении данного вопроса

Итак, в данном посте рассмотрим решение следующих вопросов:
1) Как добавлять свои пункты в контекстное меню файлов определённого типа (например txt)?
2) Как добавить свои пункты в контекстное меню абсолютно всех файлов?
3) Как добавить свои пункты в контекстное меню корзины?
4) Как создать свой тип файлов и добавить в его контекстное меню определённые пункты и выбрать пункт, который будет использоваться по умолчанию?
5) Как для нескольких типов файлов быстро создать одинаковые пункты в контекстном меню и также быстро изменить их?
6) Как добавлять свои пункты в контекстное меню Мой компьютер?
7) Как добавить свои пункты в контекстное меню только папок?
8) А есть ли программы, для редактирования контекстного меню, и какие?
  • 1) Как добавлять свои пункты в контекстное меню файлов определённого типа (например txt);

    То, что будет у вас отображаться в контекстном меню, как известно хранится в реестре. Редактирование которого мы сейчас и займёмся.

    Давайте для примера создадим пункт "Мой пункт" в контекстном меню обычного .txt файла.

    1) Первым делом нам надо зайти в редактор реестра (команда regedit).

    2) Все зарегистрированные расширения хранятся в разделе HKEY_CLASSES_ROOT. Переходим в него (двойным кликом, или просто нажимаем [+] рядом с этим разделом).

    3) Прокручиваем раскрывшийся список до тех пор, пока не увидим раздел "txtfile" (естественно без кавычек. Почему именно txtfile, а не .txt объясню Вам чуть позже). Во время поиска этого раздела обращаем внимание на раздел "*", который в раскрывшимся списке находится в самом верху (он нам позже ещё понадобится. Некоторые может сразу догадаются для какой цели он нам нужен будет).

    4) После того, как вы найдёте раздел "txtfile" (он будет практически в самом низу) нажимаем на [+] рядом с этим разделом. В раскрывшемся списке вы увидите разделы "DefaultIcon" (в данном разделе хранится путь к иконке, которая будет отображаться у файлов .txt) и раздел "shell", в котором как раз таки и хранится то, что будет отображаться в контекстном меню. Раскрываем его. В данном разделе уже есть подразделы "open", "print" и "printto" (обращаем внимание на подразделы этих разделов). Я думаю назначение этих пунктов вам понятно по их названию.

    5) Создаём в разделе "txtfile\shell" новый раздел. Для этого надо кликнуть правой кнопкой мыши по разделу shell и выбрать "Создать/Раздел" и вводим название "Мой пункт" (только без кавычек).

    Теперь можете создать .txt файл или кликнуть правой кнопкой мыши по уже существующему .txt файлу и с изумлением обнаружить, что пункта "Мой пункт" в контекстном меню нету. А нету его там потому, что Вы что-то не так сделали. У тех, кто всё делал как описано выше этот пункт в контекстном меню есть Но при выборе этого пункта появляется сообщение "Приложение, выполняющее эту операцию, указанному файлу не сопоставлено. Произведите сопоставление с помощью панели управления "Свойства папки"."

    6) Дак как же нам всё это починить, и сделать так, чтоб при выборе этого пункта запускалось приложение? Отвечаю: Для этого в нашем недавно созданном разделе надо создать ещё один подраздел, в котором будет храниться команда, которая будет выполняться при выборе пункта "Мой пункт". Подраздел этот называется "command". Создаём его.

    7) Кликаем по вновь созданному пункту и смотрим на правую половину редактора реестра, в которой отображаются параметры и их значения. Т.к. мы для нашего нового пункта в контекстном меню ещё не назначили действие, там у нас в параметре "(По умолчанию)" написано "(Значение не присвоено)". Давайте присвоим значение этому параметру. Для этого 2 раза кликаем там, где написано "(По умолчанию)". После этого откроется окно для ввода или изменения параметров. Вводим в него путь до приложения, которое будет выполняться при клике по пункту "Мой пункт". Я в качестве примера просто указал cmd.

    8) Ну вот и всё. Теперь после выбора в контекстном меню пункта "Мой пункт" запустится приложение, которое мы только что указали. У меня это "Командная строка".

    В виде твика реестра это выглядит следующим образом:
    Код: Выделить весь код
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\txtfile\shell\Мой пункт\command]
    @="cmd"
  • 2) Как добавить свои пункты в контекстное меню абсолютно всех файлов?

    На данном этапе вспоминаем про раздел "*", про который я уже говорил, и обращал на него ваше внимание. Дак вот те, кто подумал что в данном разделе хранятся пункты, которые отображаются в контекстном меню абсолютно всех файлов и папок, были правы.

    1) Переходим в данный раздел (HKEY_CLASSES_ROOT\*), нажимаем на [+] рядом с этим разделом и тут же удивляемся, что в данной ветки реестра нету раздела "shell"...

    2) Создаём отсутствующий раздел "shell" и действуем также, как вы делали при добавлении пункта "Мой пункт". Т.е.

    3) Создаём в разделе "shell" новый раздел (который и будет отображаться в контекстном меню всех файлов)

    4) Создаём в разделе "shell" подраздел "command"

    5) Настраиваем значение параметра "(По умолчанию)"

    6) Радуемся тому, что всё получилось А если не получилось, тогда ищем свою ошибку и исправляем её.

    В виде твика реестра у меня получилось следующее:
    Код: Выделить весь код
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\*\shell\Этот пункт везде!\Command]
    @="cmd"
  • 3) Как добавить свои пункты в контекстное меню корзины?

    1) Открываем раздел HKEY_CLASSES_ROOT

    2) Переходим в подраздел CLSID

    3) Раскрываем раздел {645FF040-5081-101B-9F08-00AA002F954E}

    4) Создаём в разделе {645FF040-5081-101B-9F08-00AA002F954E} подраздел "shell"

    5) Действуем точно также, как делали, когда добавляли свои пункты в контекстное меню всех файлов.

    Твик реестра, который получился у меня:
    Код: Выделить весь код
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\Shell\Новый пункт в меню корзины\Command]
    @="cmd"
  • 4) Как создать свой тип файлов и добавить в его контекстное меню определённые пункты и выбрать пункт, который будет использоваться по умолчанию?

    Как вы уже догадались, в ветке реестра HKEY_CLASSES_ROOT, которую мы и изменяли, также хранятся и значения расширений файлов.

    1) Переходим в ветку HKEY_CLASSES_ROOT

    2) Кликаем по ней правой кнопкой мыши и создаём новый раздел. Я назвал его ".OSzone"

    3) Создаём в нём подраздел "shell"

    4) В подразделе "shell" создаём ещё один раздел, но уже с названием "Open" (после создания раздела "Open" у файлов с расширением .OSzone появится пункт "Открыть", который и будет пунктом по умолчанию).

    5) В разделе "Open" создаём ещё один подраздел, с названием "shell" и подраздел в подразделе "shell" с названием "command" (в общем, всё как всегда)

    6) Изменяем параметр "(По умолчанию)"

    7) В ветке "HKEY_CLASSES_ROOT\.OSzone\shell" создаём ещё один раздел, который будет дополнительным пунктом в контекстном меню .OSzone файлов. Я его так и оставил с названием "Новый раздел #1"

    8) Создаём для пункта "Новый раздел #1" подраздел "command"

    9) В подразделе "command" в разделе "Новый раздел #1" изменяем параметр "(По умолчанию)"

    После всего этого у меня получился следующий твик реестра:
    Код: Выделить весь код
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\.OSzone]
    
    [HKEY_CLASSES_ROOT\.OSzone\Shell]
    
    [HKEY_CLASSES_ROOT\.OSzone\Shell\Open]
    @=""
    
    [HKEY_CLASSES_ROOT\.OSzone\Shell\Open\Command]
    @="cmd"
    
    [HKEY_CLASSES_ROOT\.OSzone\Shell\Новый раздел #1]
    @=""
    
    [HKEY_CLASSES_ROOT\.OSzone\Shell\Новый раздел #1\Command]
    @="regedit"
  • 5) Как для нескольких типов файлов быстро создать одинаковые пункты в контекстном меню и также быстро изменить их?

    Итак, давайте в этом шаге создадим одинаковое контекстное меню для .iso и .img файлов.

    Для начала вспомним, как мы создавали контекстное меню для .txt файлов и подумаем над тем, почему контекстное меню .txt файлов изменяется в разделе "txtfile", а не в ".txt".

    Для того, чтобы получить ответ на этот вопрос достаточно внимательно посмотреть на раздел ".txt". А конкретно, на то, что у этого раздела указано в параметре "(По умолчанию)". Для этого раскрываем ветку реестра HKEY_CLASSES_ROOT, кликаем по разделу ".txt" и видим, что в параметре "(По умолчанию)" стоит значение txtfile. Т.е. получается, что можно просто создавать эдакие ссылки на другие разделы реестра, в которых и хранятся элементы контекстного меню. Давайте создадим такие ссылки для .iso и .img файлов, в которых будут элементы из созданного нами типа файлов ".OSzone". Думаю вы уже и сами разберётесь как это сделать. Подскажу лишь, что для этого просто в параметре "(По умолчанию)" у разделов .iso и .img нужно написать ".OSzone" (без кавычек).

    Твик реестра для данной манипуляции выглядит следующим образом:
    Код: Выделить весь код
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\.iso]
    @=".OSzone"
    
    [HKEY_CLASSES_ROOT\.img]
    @=".OSzone"
  • 6) Как добавлять свои пункты в контекстное меню Мой компьютер?

    Здесь первым делом смотрим на вот этот пост, который нам написал Drongo.

    После внимательного просмотра этого поста можно понять, что все пункты контекстного меню Мой компьютер хранится в разделе "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell". Вот его то и надо изменять для редактирования данного контекстного меню. Думаю здесь вы уже сами разберётесь как там что изменять, тем более, Вы это уже проделывали не один раз, за то время, пока читали данный пост и пробовали всё это применить на деле.
  • 7) Как добавить свои пункты в контекстное меню только папок?

    Как это делается нам уже продемонстрировал morkva в этом посте.
    Мне остаётся лишь повторить, что контекстное меню папок хранится в ветке "HKEY_CLASSES_ROOT\Directory\Background\shell". Дальше Вы знаете что с этим делать
  • 8) А есть ли программы, для редактирования контекстного меню, и какие?

    Да, есть. Некоторые из них нам уже указывали R.M.L в этом посте и Admiral в этом посте.

    Я добавлю ещё несколько утилит, позволяющих изменять контекстное меню.

    1) Open++ - Программа для создания произвольного контекстного меню. Подробнее о её возможностях можно посмотреть здесь

    2) ContextEdit - редактор контекстного меню и Fast Explorer - менеджер контекстного меню. Обитают эти программы на этом сайте.

    3) Context Menu Manager - Программа позволяет быстро активировать и отключать пункты в контекстном меню.

    4) 12Ghosts™ ShellX - Добавляет в контекстное меню новые команды.

    5) ShellToys XP - Программа добавляет в контекстное меню около 50 дополнительных команд, которые расширяют возможности управления файлами, папками, диалогами и окошками.

    6) SendTo Magic - Эта утилита добавляет к контекстному меню SendTo некоторые дополнительные возможности: копирование/перемещение файлов в папки, создание новых папок и т.п.

    7) SendTo Commander - Как можно догадаться по названию, программа работает с контекстным меню "Отправить".

    8) The Right click commander - RCC интегрируется в Проводник, в качестве надстройки над ним. В контекстное меню добавляется содержимое папки "Мой компьютер". Диски, папки, файлы и операции с ними будут представлены в виде пунктов и подпунктов иерархического контекстного меню.

    9) Mmm Free - Позволяет с легкостью управлять содержанием контекстных меню Explorer - можно скрыть, убрать или объединить любые пункты меню.

    10) ContextMenu ControlFreak 1.01 - Очень многие программы имеют привычку добавлять в контекстное меню, появляющееся после щелчка правой кнопкой мыши, собственные пункты. Некоторые из этих пунктов оказываются полезными, но многими другими не приходится воспользоваться ни разу, и они лишь мешают. ContextMenu ControlFreak позволяет по своему усмотрению отредактировать контекстное меню, оставив в нем только действительно необходимое, причем проделывать это программа может с любым контекстным меню, где бы оно не находилось. Если все же вдруг возникнет необходимость в одном из "удаленных" пунктов, то добраться до него можно будет без труда - все они спрятаны в субменю (пункт Rarely used).Кстати, программа позволяет использовать ее в многопользовательском режиме - каждый из пользователей сможет настроить контекстные меню по своему собственному усмотрению.

Примечание:
В твиках реестра вместо
Код: Выделить весь код
[HKEY_CLASSES_ROOT\.OSzone\Shell\Новый раздел #1]
@=""
Можно указать
Код: Выделить весь код
[HKEY_CLASSES_ROOT\.OSzone\Shell\15]
@="Новый раздел #1"
В контекстном меню это будет выглядеть одинакого. Т.е. можно создать подраздел с абсолютно любым названием, а в параметре "(По умолчанию)" указать название, которое будет отображаться.

Также довольно лёгкий способ изменения контекстного меню - это открыть любую папку, выбрать в меню "Сервис" пункт "Свойства папки...", перейти на вкладку "Типы файлов", выбрать там нужный тип файлов, нажать на кнопку "Дополнительно" и в открывшемся окне редактировать контекстное меню и иконку файлов. Если же Вам нужен будет твик ваших изменений, то я думаю если вы внимательно читали данный мануал, то Вы сможете легко его найти в реестре. Или просто нажимаем Ctrl+F и вводим например название любого созданного Вами пункта контекстного меню. После чего экспортируем раздел реестра.

PS: Надеюсь мануал всем прочитавшим его будет понятен
PPS: Пока всё это писал, нашёл на форуме тему Интерфейс - Настройка контекстного меню файлов/папок/дисков .:[все вопросы]:., в которой обсуждается тоже самое, но всё же напишу здесь, хотя надо бы наверно там.

-------
Понравился юзербар? - Жмём надпись "Полезное сообщение" под юзербаром! =)


Отправлено: 00:52, 07-05-2009 | #71



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для mozgabyte

GEEK


Автор проектов


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

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


Stayshayder, ого, Спасибо! Это тянет на статью в учебник по Автоматической установке Windows

-------
(с) mozgabyte


Отправлено: 01:00, 07-05-2009 | #72


Пользователь


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

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


Stayshayder, спасибо

-------
If Begin then End; else End.


Отправлено: 22:24, 07-05-2009 | #73

9119


Сообщения: n/a

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


Народ!подскажите пожалуйста.
Как добавить нужный пункт в контекстное меню "Создать".....???
Укажите просто на нужную ветку реестра.
А если конкретно то хочу добавить пункт создать батник..

Последний раз редактировалось 9119, 12-07-2009 в 20:47.


Отправлено: 18:18, 12-07-2009 | #74


Аватара для Cibersoft Prolex

Старожил


Автор проектов


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

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


9119
Цитата 9119:
Народ!подскажите пожалуйста.
Как добавить нужный пункт в контекстное меню "Создать".....???
Укажите просто на нужную ветку реестра.
А если конкретно то хочу добавить пункт создать батник.. »
Твики реестра Вы можете посмотреть в этой теме: Твики реестра

-------
Если я Вам помог - жмите "Полезное сообщение"


Отправлено: 21:41, 12-07-2009 | #75


Аватара для E-mpty

Старожил


Автор проектов


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

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


Вложения
Тип файла: 7z Context.7z
(45.1 Kb, 157 просмотров)

9119, Запусти этот файл (во вложении) и будет то что нужно...Кроме твика реестра,нужно еще создать батник(образец который будет создаватся из пункта создать) и поместить его в папку %windir%\SHELLNEW...
P.S.Пункт появится после нажатия правой клавиши мыши-обновить, на рабочем столе.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:47, 12-07-2009 | #76


Аватара для Habetdin


Автор проектов


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

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


Цитата E-mpty:
Кроме твика реестра,нужно еще создать батник(образец который будет создаватся из пункта создать) и поместить его в папку %windir%\SHELLNEW... »
Можно положить образец в %UserProfile%\Шаблоны

Цитата 9119:
Как добавить нужный пункт в контекстное меню "Создать".....??? »
Ложим образец (Образец.расширение) в папку %UserProfile%\Шаблоны (можно распаковать svcpack-аддоном, как удобнее)
Применяем твик из myCustom
Код: Выделить весь код
HKCR,".расширение\ShellNew","NullFile",0x0,"Образец.расширение"
Или .reg-файлом
Код: Выделить весь код
[HKEY_CLASSES_ROOT\.расширение\ShellNew]
"NullFile"="Образец.расширение"
P.S.: не забываем менять .расширение и Образец.расширение

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:53, 12-07-2009 | #77


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


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

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


Цитата:
morkva
Я немного переделал твой скрипт.
- Теперь reg файлы не нужны. И сам скрипт может лежать где угодно, не обязательно в System32
- Запись в реестр ведется для текущего юзера, ибо не всегда есть права админа
- Пункт меню добавляется только в контекстное меню открытой папки - так удобнее и логичнее, но в XP вроде не
работает. Там только по контекстному меню папки можно. Но я на Win 7 сижу. На висте тоже должно работать.
- Добавлена иконочка
Идея такая: Запускаем скрипт. Он смотрит, если ветка "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\SuperHidden" не существует, то создает ее, иначе удаляет. В реестр записывает путь к самому себе с параметром (любым, я выбрал "-argument"). Затем, когда пользователь кликает по нашему пункту меню, запускается скрипт, ему передается параметр, скрипт понимает, что если есть параметр, то надо не удалить раздел, а изменить запись в нем (извиняюсь за кривое объяснение)

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

Отправлено: 16:20, 20-07-2009 | #78


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


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

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


То же самое, только для расширений файлов (Скрыть/Показать)

Код: Выделить весь код
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)
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:53, 20-07-2009 | #79


Аватара для Smarty

In reserve...


Contributor


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

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


9119, По поводу меню ''Создать - BAT File''...
Чего городить огород? ''Создать - Текстовый файл'', далее пишешь в нём нужный код, сохраняешь и меняешь расширение на BAT или CMD. Или нужен новый файл уже с куском кода?

Отправлено: 18:01, 20-07-2009 | #80



Компьютерный форум OSzone.net » Изменение внешнего вида Windows » Оформление Windows XP » Разное - Добавление пользовательских пунктов в контекстное меню (файлы, папки и т.д.)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Пропадание в меню "создать" некоторых пунктов и ещё пару вопросов Rockon Microsoft Windows 2000/XP 5 16-06-2009 15:40
Ошибка - Периодически не открываются пункты меню, папки, файлы Adgost Microsoft Windows 2000/XP 10 02-12-2008 16:57
Интерфейс - контекстное меню папки nureke Microsoft Windows 2000/XP 1 05-04-2008 09:11
Добавление в контекстное меню di2blo Автоматическая установка Windows 2000/XP/2003 4 24-03-2008 08:56
Удаление пунктов меню. andreyxp Microsoft Windows 2000/XP 2 16-08-2006 23:35




 
Переход