Додаємо команди в контекстне меню комп’ютера - форум твого напрямки

Незважаючи на певну схожість з папками, Комп'ютер (або як в ранніх версіях windows Мій комп'ютер) є спеціальним об'єктом Windows. В системі Windows таких об'єктів досить багато (сотні).
У реєстрі Windows є спец розділ CLSID. який знаходиться в гілці HKEY_CLASSES_ROOT.
Якщо зайти в цей розділ, то можна побачити, що він містить незрозумілі розділи, що складаються з набору цифр і букв, які оточені фігурними дужками. Це ідентифікатори класу (Class ID або CLSID), які є шестнадцатібайтним числом.

Отже, щоб додати нову команду в контекстне меню значка Комп'ютер. потрібно знайти його ідентифікатор і додати новий підрозділ в його розділі shell.

Об'єкту Комп'ютер відповідає ідентифікатор

Таким чином, щоб додати свою команду в контекстне меню об'єкта Комп'ютер. необхідно створити в розділі
HKEY_CLASSES_ROOT \ CLSID \\ shell
новий розділ (наприклад, notepad ++) (можна і звичайний notepad, просто notepad ++ набагато функціональніша), який і буде відображатися в меню.


У створеному розділі створіть підрозділ command. в якому пропишіть програму для запуску в параметрі за замовчуванням. У нашому випадку це буде рядок notepad ++. Exe


Можна відредагувати значення за замовчуванням для створеного розділу notepad ++. щоб виводилося зручніше ім'я (наприклад, Запустити notepad ++)


Перевіряємо - вибираємо об'єкт Комп'ютер в будь-якому місці (меню кнопки Пуск, значок на робочому столі або в Провіднику) і переконуємося, що в контекстному меню з'явилася команда Запустити notepad ++

Створення каскадних меню з ярликами обраних додатків в контекстному меню

Додаємо команди в контекстне меню комп'ютера - форум твого напрямки


В ході цієї статті ми розберемо як додавати посилання на обрані програми в контекстне меню робочого столу Windows або «Мого комп'ютера».

Інструкція розділена на 2 частини:

1. Створення каскадних меню в контекстному і додавання ярликів.
2. Додавання функціональності ярликів шляхом їх реєстрації.

Частина 1. Створення контекстних меню і додавання ярликів

2. Перейдіть в наступну гілку:

Якщо Ви хочете додати каскадне меню в контексті меню «Мого комп'ютера», тоді перейти потрібно в цю гілку:

3. Тепер необхідно створити новий ключ реєстру в розділі «Shell». Натисніть правою кнопкою миші на ключі «Shell» і виберіть «Створити -> Розділ». Дайте йому якесь оригінальне і неповторне ім'я, наприклад «Menu1» (без лапок).

4. Тепер виберіть щойно створений розділ «Menu1». У правій частині вікна нам необхідно створити 4 строкових параметри:

1. MUIVerb
2. SubCommands
3. Icon
4. Position


Параметри Icon і Position Ви можете і не створювати (вони опційні), а ось MUIVerb і SubCommands - обов'язкові.

MUIVerb - це ім'я каскадного меню, яке буде відображатися в контекстному меню. Ви можете назвати його як завгодно, наприклад, «Додатки», «Програми перегляду» і т.д.

SubCommands містить список команд, між якими ставиться крапка з комою (. Ці команди будуть показані в каскадному меню. Ви не можете безпосередньо додати ярлик програми. Спочатку в цьому списку Вам потрібно дати команді ім'я, а після цього зареєструвати її згідно інструкції у 2 Частини статті.

5. Давайте з'ясуємо щодо строкового параметра «SubCommands».

Припустимо, що Ви вже створили каскадне меню «Apps» (перекладачеві не хочеться самому робити скріни, тому він не перевів це слово), як це описано в пункті 3, і тепер Ви хочете додати в нього ярлики Notepad (блокнота) і Calculator (калькулятор) . В такому випадку Вам потрібно задати таке значення параметру «SubCommands»:

Ви можете використовувати і команди «Блокнот» і «Калькулятор», але в даному випадку потрібно буде використовувати їх у 2 частини цієї інструкції.

Додаємо команди в контекстне меню комп'ютера - форум твого напрямки

Додаємо команди в контекстне меню комп'ютера - форум твого напрямки


6. Параметр Icon використовується для відображення іконки. У нашому прикладі його значення explorer.exe, тому у каскадного меню «Browsers» значок так гаряче всіма улюбленого браузера.

Додаємо команди в контекстне меню комп'ютера - форум твого напрямки


7. Параметр «Position» використовується для визначення позиції каскадного меню в контекстному. За замовчуванням це середина контекстного меню, але Ви можете вибрати значення Top (зверху) або Bottom (знизу).

8. Ви можете створити більше одного меню, знову пройшовши по пунктам 3 і 4.

Частина 1. Додавання функціональності ярликів шляхом їх реєстрації

Як тільки Ви додасте ярлики програм в какскадние меню, Вам необхідно буде їх зареєструвати наступним чином:

1. Перейдіть в наступний розділ:

2. У цьому розділі нам потрібно створити нові ключі для кожної з команд, вказаних раніше в строковому параметрі SubCommands.

У нашому прикладі ми використовували 2 команди: notepad і calc, тому нам потрібно створити два ключа в розділі «CommandStore \ Shell» з такими ж іменами.

4. Якщо Ви також хочете додати ярлику іконку, створіть новий строкової параметр з ім'ям icon і встановіть його значенням шлях до EXE файлу програми або будь-який інший іконці. Наприклад, щоб показати іконку «блокнота», Ви повинні задати параметру Icon значення notepad.exe

5. І тепер останній крок! У кожному з щойно створених ключів створіть новий ключ і назвіть його command.
Виберіть його і в правій частині вікна встановіть значенням Default шлях до EXE-файлу необхідної програми. Наприклад, якщо ярлик повинен відкривати «блокнот», то для Command слід встановити на notepad.exe

Додаємо команди в контекстне меню комп'ютера - форум твого напрямки


PS: Блокнот є рідною Windows-додатком, тому Ви можете не вказувати повний шлях до нього, але якщо Ви хочете запускати сторонню програму, то необхідно вказати повний шлях до її EXE-файлу.

P.S. Прошу сильно не штовхати - це мій перший повноцінний пост на Хабре.

Контекстне меню робочого столу:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT \ DesktopBackground \ Shell \ Menu1]
"MUIVerb" = "Apps"
"SubCommands" = "notepad; calc"
"Icon" = "explorer.exe"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CommandStore \ shell \ notepad]
@ = "Notepad"
"Icon" = "notepad.exe"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CommandStore \ shell \ notepad \ com mand]
@ = "Notepad.exe"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CommandStore \ shell \ calc]
@ = "Calculator"
"Icon" = "calc.exe"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CommandStore \ shell \ calc \ comman d]
@ = "Calc.exe"

Контекстне меню «Мій комп'ютер»:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT \ DesktopBackground \ Shell \ Menu1]
"MUIVerb" = "Apps"
"SubCommands" = "notepad; calc"
"Icon" = "explorer.exe"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CommandStore \ shell \ notepad]
@ = "Notepad"
"Icon" = "notepad.exe"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CommandStore \ shell \ notepad \ com mand]
@ = "Notepad.exe"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CommandStore \ shell \ calc]
@ = "Calculator"
"Icon" = "calc.exe"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CommandStore \ shell \ calc \ comman d]
@ = "Calc.exe"

Примітка: Якщо Ви хочете видалити створене каскадне меню, просто видаліть ключі, створені в пункті 3 першої частини і пункті 2 другій частині статті.

А як видалити Пункт з контекстного меню? наприклад, цей

Додаємо команди в контекстне меню комп'ютера - форум твого напрямки