#windows #registry #contextmenu
#Windows #реестр #contextmenu
Вопрос:
Я обнаружил, что «CommandFlags»= dword:00000040 добавит разделитель под записью, хотя только в подменю (в строке «subcomands» =»»). Пример здесь.
Есть ли способ добавить разделитель в главное контекстное меню?
Пример, который я использую:
[HKEY_CLASSES_ROOTAllFilesystemObjectsshellDelete With Rimraf]
@="Delete With Rimraf"
"CommandFlags"=dword:00000040
Это не дает разделителя.
Ответ №1:
В этом примере разделитель находится после и перед элементом, эта запись предназначена для загрузчика VirusTotal
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREClasses*shellvtuploader]
@="Send to VirusTotal"
"Icon"="C:\Program Files\VirusTotalUploader2\VirusTotalUploader2.2.exe,0"
"SeparatorBefore"=""
"SeparatorAfter"=""
Для других приложений, загруженных через shellex, невозможно добавить разделитель поверх реестра, введенная dll добавляет / удаляет сам разделитель, затем вам нужно изменить код dll и перекомпилировать его для достижения желаемого. вот пример с notepad
https://github.com/notepad-plus-plus/notepad-plus-plus/pull/3092/commits
InsertMenu(hMenu, nIndex, MF_STRING | MF_BYPOSITION, idCmd , m_szMenuTitle);
Ответ №2:
Привет, я автор записи в блоге, на которую вы ссылаетесь (https://blog.sverrirs.com/2014/05/creating-cascading-menu-items-in.html )
Ваши возможности управления главным контекстным меню довольно ограничены. В документации MSDN указано, что вы можете использовать ECF_SEPARATORBEFORE (0x20)
значение только для элементов верхнего уровня.