Для роботи розкривного меню потрібні дві складових:
Спочатку я розповім, як зареєструвати у реєстрі власні команди. У порівнянні зі способом додавання окремих пунктів меню, про який я вже розповідав, такий підхід має дві переваги:
Слідуючи простим покроковим інструкціям, через 10 хвилин ви створите власну спадне меню, яке показано на малюнку нижче.
В кінці статті ви також знайдете готові набори розкривних меню.
Спочатку ми зареєструємо команди, які будуть виконуватися при клацанні по пункту меню. Відкрийте редактор реєстру і приступимо!
Перейдіть в разделHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell
В цьому розділі створіть підрозділи для кожної програми або команди, яку ви хочете бачити в меню. Назви підрозділів можуть бути будь-якими, але обов'язково латинськими і без пробілів. В моєму прикладі створюється три підрозділи:
У кожному із створених підрозділів двічі клацніть параметр (За замовчуванням) і в якості значення задайте ім'я ярлика, який ви хочете бачити в меню. Наприклад, для підрозділу regedit я поставив ім'я Редактор реєстру.
Якщо ви хочете, щоб поруч з назвою показати значок, створіть там же рядковий параметр Icon і значення вкажіть виконуваний файл або бібліотеку з номером ресурсу. Я вказав regedit.exe щоб використовувати стандартний значок редактора реєстру.
Тепер задайте команду для пункту меню. У кожному розділі, який ви створили на кроці 2, створіть підрозділ з ім'ям command. Потім двічі клацніть параметр (За замовчуванням) і в якості значення вкажіть шлях до програми.
Наприклад, для редактора реєстру я вказав regedit.exe (повний шлях не потрібен, оскільки виконуваний файл знаходиться в системній папці).
В реєстрі повинна вийти така картина:
Тепер потрібно в реєстрі створити меню і додати в нього пункти, які будуть служити для виклику команд.
В залежності від того, де ви хочете створити спливаюче меню, виберіть розділ.
Клацніть правою кнопкою миші по розділу shell і виберіть пункт Створити Новий розділ. Ім'я розділу можна вибрати будь-яку, але воно обов'язково повинно бути латинське. Назвіть його, наприклад, Menu1. В цьому розділі будуть створені наступні рядкові параметри.
Параметр MUIVerb (обов'язково) відповідає за назву розкривного меню, тому значення можете вибирати будь-який. Я назвав своє Система.
Параметр SubCommands (обов'язково) містить список покажчиків для команд, які будуть виконуватися з меню. Назви покажчиків повинні відповідати назвам підрозділів реєстру, які ви створили на кроці 2 в попередньому розділі статті. Розділяйте покажчики крапкою з комою (;) та перераховуйте їх у тому порядку, в якому ви хочете бачити пункти в меню. Щоб вам було простіше зрозуміти, я наведу свій список:
regedit;taskmgr;devmgmt
Таким чином, у мене в меню будуть редактор реєстру, диспетчер завдань та диспетчер пристроїв.
Параметр Icon (необов'язково) задає значок для розкривного меню. Можна задати шлях до бібліотеки (dll) і номер ресурсу (піктограми), або повний шлях до виконуваного файлу (якщо він у системній папці, достатньо вказати тільки ім'я). Для свого меню «Система» я поставив значок imageres.dll,104 (спочатку почала ім'я файлу, а через кому – номер ресурсу).
Параметр Position (необов'язково) відповідає за розташування розкривного меню в контекстному меню. Ви можете задати йому значення Top (зверху) або Bottom (знизу). Якщо значення не задавати, спадне меню опиниться в середині контекстного меню. Я розташував своє меню внизу.
Параметр Extended (необов'язково) відповідає за відображення пункту в меню. Коли параметр присутній, щоб побачити створений пункт, потрібно викликати контекстне меню, утримуючи натиснутою клавішею SHIFT. Цього параметру не потрібні значення.
Якщо ви хочете створити два меню, створіть розділ Menu2 і повторіть кроки 3 – 7. Таких меню можна зробити скільки завгодно.
Давайте подивимося, що вийшло в реєстрі:
До речі, вже все готово! У контекстному меню комп'ютера з'явилося розкривне меню «Система» зі списком пунктів.
Якщо ви заплуталися або у вас щось не виходить, видалите створені розділи та параметри, а потім імпортуйте наведений нижче REG-файл (він додає спадне меню в контекстне меню комп'ютера).
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\20D04FE0-3AEA-1069-A2D8-08002B30309D\shell\Menu1]
"MUIVerb"="Система"
"SubCommands"="regedit;taskmgr;devmgr"
"Icon"="imageres.dll,104"
"Position"="Bottom"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\regedit]
@="Редактор реєстру"
"Icon"="regedit.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\regedit\command]
@="regedit.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\taskmgr]
@="Диспетчер завдань"
"Icon"="taskmgr.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\taskmgr\command]
@="taskmgr.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\devmgr]
@="Диспетчер пристроїв"
"Icon"="devmgr.dll,4"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\devmgr\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6 d,00,52,00,6 f,00,6 f,00,74,00,25,\
00,5 c,00,73,00,79,00,73,00,74,00,65,00,6 d,00,33,00,32,00,5 c,00,6 d,00,6 d,00,\
63,00,2 e,00,65,00,78,00,65,00,20,00,2 f,00,73,00,20,00,25,00,53,00,79,00,73,\
00,74,00,65,00,6 d,00,52,00,6 f,00,6 f,00,74,00,25,00,5 c,00,73,00,79,00,73,00,\
74,00,65,00,6 d,00,33,00,32,00,5 c,00,64,00,65,00,76,00,6 d,00,67,00,6 d,00,74,\
00,2 e,00,6 d,00,73,00,63,00,00,00
Тепер ви можете побачити, яка структура повинна бути в реєстрі.