6

Мне нравится много экспериментировать с кодированием и созданием файлов html, css, js и т.д. Каждый раз, когда я хочу попробовать что-то утомительное. Чтобы обойти это, я создал шаблоны html, css и т.д. И добавил их в контекстное меню "Создать" (Как добавить элемент в контекстное меню "Новый"?).

В настоящее время я добавил 4 предмета; HTML, CSS, JS и PHP. "Новое" подменю стало немного переполненным. Теперь я думаю, возможно ли создать новое подменю с пользовательским именем (например, "Кодирование"), чтобы я мог добавить эти файлы. Фактическое "Новое" подменю было бы менее загруженным, и я мог легко получить доступ к этим файлам кодирования в новом подменю.

Вторая мысль, это новое подменю не обязательно должно быть прямо в контекстном меню. Может быть внутри "Нового" меню. Я просто хочу сгруппировать эти четыре файла.

В худшем случае, можно ли изменить порядок подменю "Новый"? Я хотел бы сложить эти четыре сверху или снизу.


Обновление: я создал хранилище для этой функциональности. Не стесняйтесь проверить это.

2 ответа2

2

Я искал решение этой проблемы, но самое близкое, к чему я пришел, - добавить новый элемент в контекстное меню, в котором вызывается скрипт, который создает копию файла шаблона.

Это не совсем то, чего я хочу, но это может дать кому-то идею, так что я все равно опубликую это.

Сначала я искал способ добавить элемент в контекстное меню. Например, Командная строка. Следующий ключ реестра делает эту работу.

Windows Registry Editor Version 5.00

; Directory\Background\shell => on empty space

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd]
"Icon"="cmd.exe,0"
@="Command Prompt"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd\command]
@="cmd.exe"

; Directory\shell => on a folder

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="Command Prompt"
"Icon"="cmd.exe,0"

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /k cd %1"

Далее я хочу добавить элемент, который создает файл, например, файл CSS.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\CSS]
@="Cascading Style Sheet Document"
"Icon"="%SystemRoot%\\SysWow64\\SHELL32.dll,69"

[HKEY_CLASSES_ROOT\Directory\Background\shell\CSS\command]
@="C:\\Windows\\CustomNew\\css.bat"

Как и в разделе реестра командной строки, он добавляет элемент в контекстное меню, но вместо запуска приложения он вызывает файл bat. Содержимое файла bat:

@echo off

copy C:\Windows\ShellNew\css.css %cd%

rename css.css "New Cascading Style Sheet Document.css"

У меня есть файл шаблона css.css в C:\Windows\ShellNew . Я просто делаю копию файла шаблона в каталоге, где я щелкаю правой кнопкой мыши и выбираю Cascading Style Sheet Document .

Конечно, я не буду использовать этот метод. Это только усложняет ситуацию еще больше. Представьте, что все файлы bat, css, html, js и php находятся прямо в контекстном меню. Мне все еще нужно лучшее решение.


Обновить:

Возможно, я нашел решение. Оригинальная статья: Добавить каскадные меню для программ на рабочем столе и контекстные меню моего компьютера в Windows 7 и более поздних версиях - AskVG

Добавление пользовательского меню в контекстное меню:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\Coding]
"Icon"="C:\\Windows\\CustomNew\\coding.ico"
"MUIVerb"="Coding"
"SubCommands"="cmd;css;html;js;php;bat"
"Position"="Top"

Чтобы это меню работало, нам нужно определить эти команды cmd , css , html и т.д. Например, определение командной строки:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\cmd]
@="Command Prompt"
"Icon"="cmd.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\cmd\command]
@="cmd.exe"

При нажатии на командную строку в меню будет запущен cmd.exe . Это просто. Сложная задача - добавить элемент / приложение, создающее новый файл.

Давайте начнем с файла CSS. Следующий реестр добавит пункт в меню.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\css]
@="Cascading Style Sheet Document"
"Icon"="%SystemRoot%\\System32\\shell32.dll,-151"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\css\command]
@="C:\\Windows\\CustomNew\\css.bat"

Хотя у нас есть новый элемент с именем "Каскадная таблица стилей", щелчок по нему, как правило, ничего не даст. Чтобы заставить его создать новый файл в текущей папке, мы вызываем скрипт.

Я подготовил пакетный скрипт для каждого типа файла, который я хочу создать; bat.bat , css.bat , html.bat и т. д. и поместил их в C:\Windows\CustomNew . Также я поместил файлы шаблонов bat.bat , css.css , html.html и т.д. В C:\Windows\ShellNew .

Поэтому, когда я нажимаю "Каскадный документ таблицы стилей" в меню, я вызываю css.bat который делает копию файла шаблона css и помещает его в текущую папку.

Файл css.bat :

@echo off

copy C:\Windows\ShellNew\css.css "%cd%"

rename css.css "New Cascading Style Sheet Document.css"

Было бы лучше просто создать новый файл CSS без вызова скрипта, но я не думаю, что это возможно. Однако, если у кого-то есть идея, я бы хотел ее услышать.

Посмотри на это. Оно прекрасно :)

0

Я создал прикрепленный reg-файл "template", который помогает создать меню с двумя подменю в Windows 10. Я надеюсь, что вы найдете это полезным. Удалите все комментарии в reg-файле после заполнения подменю.

;--------------------------------------------------

Windows Registry Editor Version 5.00

;add.submenu.to.context.menu.blank.template
;(1) Change "MUIVerb"="MyNewMenu" to top level TITLE of both 
;Directory and Background menus (BOTH should have same TITLE)
;(2)Change all MyMenu1 to a unique identifier for this entire one submenu
;(3)Change "MUIVerb"="FirstCommand" to first command name
;(4)Change command line (@) following MUIVerb FirstCommand to desired first
command line
;(5)Change "MUIVerb"="SecondCommand" to second command name
;(7)Change command line (@) following MUIVerb SecondCommand to desired second
command line
;(8)Change icons if desired
;(9)Save file as .reg file

;This displays context menu when you right-click Directory
[HKEY_CLASSES_ROOT\Directory\shell\MyMenu1]
;Directory Level Menu Title 
"MUIVerb"="MyNewMenu"
"Icon"="cmd.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MyMenu1"

;This displays context menu when you right-click Directory Background
[HKEY_CLASSES_ROOT\Directory\background\shell\MyMenu1]
;Background Level Menu Title
"MUIVerb"="MyNewMenu"
"Icon"="cmd.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MyMenu1"

;First command under submenu
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\shell\open]
"MUIVerb"="FirstCommand"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\shell\open\command]
@="cmd.exe /s /k pushd \"%V\""

;Second command under submenu
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\shell\runas]
"MUIVerb"="SecondCommand"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""
;-------------------------------------------------

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .