Я искал решение этой проблемы, но самое близкое, к чему я пришел, - добавить новый элемент в контекстное меню, в котором вызывается скрипт, который создает копию файла шаблона.
Это не совсем то, чего я хочу, но это может дать кому-то идею, так что я все равно опубликую это.
Сначала я искал способ добавить элемент в контекстное меню. Например, Командная строка. Следующий ключ реестра делает эту работу.
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 без вызова скрипта, но я не думаю, что это возможно. Однако, если у кого-то есть идея, я бы хотел ее услышать.
Посмотри на это. Оно прекрасно :)