Контекстное меню пуска

Подробный разбор вариантов контекстного меню Windows. Обсуждение на LiveInternet – Российский Сервис Онлайн-Дневников

Контекстное меню пуска
Суббота, 03 Ноября 2012 г. 23:19 + в цитатник

В данном уроке мы подробно рассмотрим функции очень полезной клавиши, которая есть на любой клавиатуре. Эта клавиша называется «клавиша Контекстного меню». Находится она в правой нижней части клавиатуры между клавишами ALT и CTRL

При нажатии этой клавиши ВЫЗЫВАЕТСЯ КОНТЕКСТНОЕ МЕНЮ, точно такое же, как если бы Вы нажали ПРАВУЮ кнопку мыши. Фишка этой кнопки в том, что вызываемое при нажатии меню, будет отображать функции (пункты меню), которые можно применить в текущей программе, в активном окне, на рабочем столе и т.д. Т.е.

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

1.

Нажатие ПРАВОЙ кнопки мыши или клавиши «Контекстное меню» на Рабочем столе Windows

Для Windows 7

При нажатии ПРАВОЙ кнопки мыши или клавиши «Контекстное меню» на рабочем столе Windows 7 появляется меню следующего вида:

1. В самом верху меню – настройка параметров Вашей видеокарты.
2. Вид – настройка отображения значков на рабочем столе
 

3. Сортировка – настройка сортировки по отображению значков на рабочем столе
 

4. Обновить – обновление отображения содержимого на Рабочем столе.
5. Вставить – если Вы что-то копировали, то можете это вставить на Рабочий стол.
6. Создать. Тут Вы можете создать именно на Рабочем столе: папку, ярлык, текстовый документ, архив, документы MS Office – Word, Excel, PowerPoint и др. (если установлен)
 

7. Разрешение экрана. Тут Вы сможете установить нужные настройки экрана: выбрать экран (их может быть несколько), узнать или установить разрешение экрана, определить ориентацию экрана, а также настроить другие параметры работы с экраном, например подключить проектор.
 

8. Гаджеты – выбор и установка гаджетов Windows 7. В Windows XP такой функции нет.
 

9. Персонализация. Тут Вы сможете настроить внешний вид Рабочего стала, поменять фон, заставку, звуки, тему, цвет окон и т.д.
 

Для Windows XP
 

В Windows XP, как многие  конечно же знают, контекстное меню выглядит попроще, но функции выполняет почти те же самые.

При нажатии ПРАВОЙ кнопки мыши или клавиши «Контекстное меню» на рабочем столе Windows ХР появляется меню следующего вида:

1.  При помощи первого пункта меню Упорядочить значки мы можем выполнить следующие операции:
 

2. А все основные настройки Экрана и Рабочего стола вызываются через пункт Свойства ( боле подробно
см. Настройка Рабочего стола OS Windows ХР)
 

Разрешение экрана настраивается на вкладке Параметры

2. Нажатие ПРАВОЙ кнопки мыши или клавиши «Контекстное меню» на файле или папке в Проводнике или любом другом файловом менеджере.

При нажатии ПРАВОЙ кнопки мыши или клавиши «Контекстное меню» на файле в Проводнике или любом другом файловом менеджере меню тоже подстраивается по файл определённого типа. Например, я кликнула по видео файлу. Открылось следующее меню:

  В этом случае меню предлагает функции, которые соответствуют именно видео файлу: воспроизвести, добавить в список проигрывателя, который выбран по умолчанию для данного типа файла. И ряд стандартных функций: открыть с помощью, добавить в архив (если установлен архиватор), отправить, вырезать, копировать, удалить, переименовать и свойства файла. Если же кликнуть ПРАВОЙ кнопки мыши или по клавише «Контекстное меню» на графическом файле, тогда откроется меню, которое будет соответствовать графическому типу файла:
Тут можно сразу открыть, отредактировать или напечатать выбранный файл в установленной по умолчанию программе для работы с изображениями. В моём случае это программа ACDSee.

Тут же можно сразу сделать выбранный файл фоновым изображением для Рабочего стола, очень удобно, когда выбираешь из большого списка. И далее идут опять же стандартные функции для работы с файлами.

https://www.youtube.com/watch?v=qsETwjrR064

В Windows XP отличий особых нет, 
 

стандартные функции для работы с файлом вызываются командой Изменить Остановлюсь более подробно на пунктах «Открыть с помощью» и «Отправить».

Чем полезна функция «Открыть с помощью»

Тут Вы можете выбрать или назначить для работы с выбранным файлом любую установленную программу, которая понимает выбранный формат файла. В данном случае, я кликнул на видео-файле и на моём компьютере с этим форматом могут работать несколько программ: Light Allow, WinAmp и конечно же Windows Media Player.

Если же в списке нет нужной программы, но Вы точно знаете, что она установлена, выбирайте пункт меню «Выбрать программу». Windows предложит Вам выбрать программы из списка рекомендуемых или других программ.

В Windows XP вид этого окна немного другой, но смысл тот же:

Если вы хотите, чтобы выбранный формат файла всегда открывался программой, которую Вы выберите, тогда установите галочку «Использовать выбранную программу для всех файлов такого типа».

Если же нужной программы нет ни в списке рекомендуемых программ, ни в других, но Вы точно знаете, что программа установлена, тогда нажимайте кнопку «Обзор…» и выбирайте её из папки, куда установлена программа.

Чем полезна функция «Отправить»

С помощью этой функции Вы так сказать «не отходя от кассы», можете отправить (перенести, передать) выбранный файл по BlueTooth (блутуз), скайпу, почте, на Рабочий стол, в архив, для записи на CD/DVD диск, на флешку и т.д.

3. Нажатие ПРАВОЙ кнопки мыши или клавиши «Контекстное меню» в любом интернет браузере.

И тут тоже меню подстраивается под разные ситуации, в зависимости от того, куда Вы кликните на веб-странице. Например, если Вы кликните по ссылке, тогда откроется меню следующего вида:
 

С помощью этого меню, Вы сможете открыть содержимое ссылки в новой вкладке или в новом окне, добавить ссылку в закладки, отправить ссылку, скопировать ссылку, если ссылка – это файл, тогда сможете сохранить его с помощью «Сохранить объект как…». Если у Вас установлены программы для скачивания Вы сможете скачать содержимое ссылки с их помощью.

Если кликнуть ПРАВОЙ кнопки мыши или клавиши «Контекстное меню» по картинке на веб-странице, тогда откроется меню с другими функциями:

Тут можно скопировать изображение в буфер и вставить, например, в документ Word, можно сохранить изображение себе на компьютер с помощью «Сохранить изображение как…», отправить изображение по почте, сделать выбранное изображение фоновым рисунком рабочего стола, узнать информацию об изображении (тип, размер, название файла) и т.д. Подведу итог. В данном уроке мы рассмотрели самые популярные варианты использования контекстного меню, которое вызывается кликом ПРАВОЙ кнопкой мыши или нажатием клавиши «Контекстное меню» на клавиатуре. А именно: 1. Нажатие ПРАВОЙ кнопки мыши или клавиши «Контекстное меню» на Рабочем столе Windows 2. Нажатие ПРАВОЙ кнопки мыши или клавиши «Контекстное меню» на файле или папке в Проводнике или любом другом файловом менеджере. 3. Нажатие ПРАВОЙ кнопки мыши или клавиши «Контекстное меню» в любом интернет браузере. Суть данного урока в том, чтобы научиться применять полезные функции конкретной активной среды Вашего компьютера. В любой среде кликнув ПРАВОЙ кнопкой мыши или нажав по клавише «Контекстное меню», Вы получите список полезных функций доступных в данный момент времени, относительно выбранного объекта.

Источник

Источник: https://www.liveinternet.ru/users/pomogai-ka/post246330790/

Расширяем контекстное меню кнопки «Пуск» в Windows 8.1

Контекстное меню пуска

В этой статье мне хотелось бы рассказать о своем опыте расширения Windows Explorer, если конкретнее, контекстного меню, называемого «Power User Menu». Не скажу, что очень нуждаюсь в старом представлении меню кнопки «Пуск», но все таки хотелось бы иметь возможность быстрого и структурированного доступа к основным функциям необходимым в работе.

Power User Menu можно вызвать двумя способами: 1. Щелкнуть правой кнопкой мыши на кнопке «Пуск». 2. Нажать комбинацию клавиш Windows Key + X.

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

Для реализации описываемого функционала мы выполним dll инъекцию в процесс Windows Explorer, а так же осуществим перехват api вызовов управляющих работой контекстного меню. В качестве подопытной операционной системы будем использовать Windows 8.1 x64. Итак начнем с процедуры позволяющей нам выполнить инъекцию dll в адресное пространство Windows Explorer.

Способ инъекции, который мы будем использовать называется «Code cave dll injection» и представляет из себя инъекцию заранее подготовленного машинного кода в адресное пространство выбранного процесса. Данный машинный код выполнит API вызов LoadLibrary с нужной нам библиотекой и вернет управление приложению.

void InjectDLLx64( LPPROCESS_INFORMATION ppi, LPCTSTR dll ){ CONTEXT threadContext; DWORD length; LPVOID memBuf; DWORD64 loadLibApi; union { PBYTE cC; PDWORD64 cP; } ip; #define CODESIZE 92 static BYTE code[CODESIZE+SIZE_T(MAX_PATH)] = { 0,0,0,0,0,0,0,0, // original rip 0,0,0,0,0,0,0,0, // LoadLibraryW 0x9C, // pushfq 0x50, // push rax 0x51, // push rcx 0x52, // push rdx 0x53, // push rbx 0x55, // push rbp 0x56, // push rsi 0x57, // push rdi 0x41,0x50, // push r8 0x41,0x51, // push r9 0x41,0x52, // push r10 0x41,0x53, // push r11 0x41,0x54, // push r12 0x41,0x55, // push r13 0x41,0x56, // push r14 0x41,0x57, // push r15 0x48,0x83,0xEC,0x28, // sub rsp, 40 0x48,0x8D,0x0D,41,0,0,0, // lea ecx, L”path to dll” 0xFF,0x15,-49,-1,-1,-1, // call LoadLibraryW 0x48,0x83,0xC4,0x28, // add rsp, 40 0x41,0x5F, // pop r15 0x41,0x5E, // pop r14 0x41,0x5D, // pop r13 0x41,0x5C, // pop r12 0x41,0x5B, // pop r11 0x41,0x5A, // pop r10 0x41,0x59, // pop r9 0x41,0x58, // pop r8 0x5F, // pop rdi 0x5E, // pop rsi 0x5D, // pop rbp 0x5B, // pop rbx 0x5A, // pop rdx 0x59, // pop rcx 0x58, // pop rax 0x9D, // popfq 0xFF,0x25,-91,-1,-1,-1, // jmp original Rip 0, // dword alignment for loadLibApi }; length = SIZE_T(lstrlen( dll ) + 1); if (length > SIZE_T(MAX_PATH)) return; RtlCopyMemory( code + CODESIZE, dll, length ); length += CODESIZE; threadContext.ContextFlags = CONTEXT_CONTROL; GetThreadContext( ppi->hThread, &threadContext ); memBuf = VirtualAllocEx( ppi->hProcess, NULL, length, MEM_COMMIT, PAGE_EXECUTE_READWRITE ); loadLibApi = (DWORD64)LoadLibraryW; ip.cC = code; *ip.cP++ = threadContext.Rip; *ip.cP++ = loadLibApi; WriteProcessMemory( ppi->hProcess, memBuf, code, length, NULL ); FlushInstructionCache( ppi->hProcess, memBuf, length ); threadContext.Rip = (DWORD64)memBuf + 16; SetThreadContext( ppi->hThread, &threadContext);} Машинный код выполняет сохранение регистров ЦП, затем загрузку нужной нам библиотеки при помощи API вызова LoadLibrary определенного на стадии выполнения программы, далее восстанавливает содержимое регистров и возвращает управление. Естественно, что в момент инъекции процесс должен быть в приостановленном состоянии. Код остальных функций приложения выполняющего внедрение dll рассматривать не буду, так как они не представляет большого интереса. Для того что бы иметь возможно расширять контекстное меню, необходимо получить его handle. Для вывода меню используется функция TrackPopupMenu, рассмотрим ее прототип: int WINAPI TrackPopupMenu( _In_ HMENU hMenu, _In_ UINT uFlags, _In_ int x, _In_ int y, _In_ int nReserved, _In_ HWND hWnd, _In_opt_ const RECT *prcRect)
Как видно тут есть и HWND окна, которому принадлежит меню и непосредственно HANDLE самого меню. Однако прежде чем реализовывать перехват посмотрим какие параметры получает эта функция при вызове. Воспользуемся приложением API Monitor. Скачать его можно на сайте производителя API Monitor. После конфигурации точки останова на функции в API Monitor, пытаемся открыть Power User Menu и получаем окно следующего вида: Из вызова видно что Explorer открывает контекстное меню используя флаг TPM_RETURNCMD, это значит, что не нужно пытаться искать сообщения типа WM_COMMAND определяющие выбранный элемент. Элемент указанный пользователем вернет сама функция TrackPopupMenu, либо 0 если пользователь ничего не выбрал.

Для организации перехвата API вызовов я использую библиотеку Mini Hook Library. Однако в оригинале она тянет за собой Boost. Версию без привязки к Boost можно взять в приложении к статье.

Далее привожу код перехваченной функции:int WINAPI HookedTrackPopupMenu( _In_ HMENU hMenu, _In_ UINT uFlags, _In_ int x, _In_ int y, _In_ int nReserved, _In_ HWND hWnd, _In_opt_ const RECT *prcRect){ WCHAR className[250]; int command; GetClassName(hWnd,className,250); int cpount = GetMenuItemCount(hMenu); if(wcscmp(L”ImmersiveSwitchList”,className) == 0 && !isInizialized) { HMENU hsubMenu = CreatePopupMenu(); InsertMenu(hsubMenu, 0, MF_BYPOSITION | MF_STRING, 23, L”Item”); InsertMenu(hMenu, 0, MF_BYPOSITION | MF_POPUP , (UINT_PTR)hsubMenu, L”Group”); isInizialized = true; } command = originalTrackMenu(hMenu, uFlags, x, y, nReserved, hWnd, prcRect); switch (command) { case 23 : { MessageBoxA(hWnd, “Test”, “Test”, MB_OK+MB_ICONINFORMATION); return 0; break; } default: { break; } } return command;} Как видно тут мы проверяем что вызвано контекстное меню в нужном нам месте, а именно в окне с классом ImmersiveSwitchList. Значение класса окна было установлено при помощи утилиты Spy++ поставляемой вместе с Visual Studio. Далее производим расширение контекстного меню, вызываем оригинальную функцию вывода и ожидаем результата выполнения операции. При выборе нашего пункта меню сработает MessageBox. На следующем скриншоте показано как выглядит модифицированное Power User Menu.

Заключение

Мы рассмотрели возможность модификации контекстного меню Windows Explorer при помощи dll инъекции и перехвата api функции. Таким же образом можно перехватить любое меню в контексте Windows Explorer или любого другого процесса.

Однако если меню вызывается без флага TPM_RETURNCMD, то нужно так же выполнить расширение оконной процедуры окна родителя дабы обеспечить корректную обработку выбора созданного Вами элемента и не нарушить работу уже существующего функционала.

Это можно реализовать при помощи API функции SetWindowLongPtr, передав указатель на расширяющую функцию, а так же не забыть вернуть управление родительской оконной процедуре.

Исходники к статье выполнены в Visual Studio 2012 и доступны по ссылке: DllInject.zip

Так же ссылка на статью о редактировании Power User Menu на уровне файловой системы на английском: Add Shutdown, Restart options to WinKey+X Power User Menu in Windows 8

P.S Не являюсь профессионалом в системном программировании, так что могут быть неточности.

  • windows 8.1
  • context menu
  • shell
  • dll injection

Хабы:

  • Системное программирование
  • C

Источник: https://habr.com/ru/post/194716/

Как настроить контекстное меню Windows 10: добавление, удаление команд и т.д

Контекстное меню пуска

Если оставить всё как есть, контекстные меню в системе Windows быстро становятся переполненными. Когда в меню при нажатии правой кнопкой мыши слишком много объектов, через которые нельзя прокручивать колесом мыши, приходится нажимать на стрелки наверху и внизу, что неудобно.

При этом, наверняка, в контекстном меню есть по меньшей мере одна программа, которую вы никогда не используете.

Вы можете настроить контекстное меню по своему усмотрению, избавившись от ненужных добавленных сторонними приложениями команд. Различные инструменты упрощают процесс добавления команд в часто используемое программное обеспечение, утилиты и т.д.

Microsoft даёт возможность получить быстрый доступ к разным панелям управления и местоположениям, нажав правой кнопкой мыши на меню «Пуск» или используя сочетание клавиш Windows + X. При этом в контекстных меню не хватает множества полезных команд.

Например, не помешала бы возможность очищать корзину на рабочем столе Windows при помощи контекстных меню из любого места системы. Добавление команды очистки корзины при нажатии правой кнопкой мыши по рабочему столу позволит обойтись без использования иконки корзины.

Другие идеи для добавления в контекстное меню Windows:

  • Командная строка с правами администратора
  • Возможность подтверждать владение файлами и папками
  • Команды для перезагрузки, выключения и спящего режима
  • Ускорение доступа к инструментам вроде «Очистка системы», «Восстановление системы» и тому подобным, которые обычно находятся глубоко внутри меню

Утилита «Управление компьютером» в Windows даёт доступ к менеджеру диска операционной системы, диспетчеру устройств, монитору производительности, планировщику задач, просмотрщику событий, сервисам и т.д. в одном месте. Удобно было бы добавить её в контекстное меню.

Нужно иметь в виду, что многие инструменты контекстного меню правильно работают только при запуске с правами администратора.

Такой вариант запуска должен быть доступен в тот момент, когда вы правой кнопкой мыши щёлкните на исполняемый файл. Также вы можете кликнуть на программу, удерживая на клавиатуре Control и Shift.

Добавление и удаление объектов в контекстное меню

Если вы хотите удалить из меню только один объект, лучше делать это при помощи возможностей самой системы.

Другим наиболее быстрым способом является утилита CCleaner Portable (Инструменты > Запуск> Контекстное меню), хотя во время тестирования здесь не было полного списка программного обеспечения из контекстного меню. Рекомендуется использовать эту портативную версию предложения, которую можно быстро удалить.

Glary Utilities предлагает похожий уровень функциональности с более удобным интерфейсом, но программа бесплатная только поначалу.

Бонус

Можно выбрать, будет появляться контекстное меню слева или справа от указателя мыши. Откройте диалоговое окно «Выполнить» и введите для запуска окна «Параметры планшетного компьютера»:

shell:::{80F3F1D5-FECA-45F3-BC32-752C152E456E}

Откройте вкладку «Другие» для выбора стороны отображения меню.

Как удалить обновления Windows 10

Easy Context Menu

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

А также здесь можно открывать окно «Выполнить», редактор реестра, сервисы, Msconfig.

Есть также секции редактирования контекстного меню файлов, исполняемых файлов, дисков, поддержка создания кастомных меню по нажатию на кнопку «Редактор списка команд». Раздел  «Чистка контекстного меню»позволяет легко удалить нежелательные команды.

Отображается полный список без лишнего мусора и можно легко включать и отключать объекты.

Скачать

Filemenu Tools

У этого приложения опций больше всего из протестированных программ и самый проработанный интерфейс. Это может понравиться продвинутым пользователям или тем, кто готов учиться.

Скачать

Right Click Enhancer

У бесплатной версии этого приложения функциональность ограниченная, много ненужных инструментов, вроде менеджера расширений файлов, переименования файлов. В платной версии за $9,99 функциональные возможности более обширные, можно добавлять ярлыки, подменю, убирать объекты.

Есть проблемы с сохранением состояния настроек, но иногда такое бывает и в Easy Context Menu.

Скачать

Использование реестра Windows

Можно добавлять или удалять объекты из контекстного меню через реестр Windows. Это самый удобный и надёжный способ по сравнению с рекомендованными выше инструментами.

Для начала запустите редактор реестра Windows при помощи сочетания клавиш Windows + R и введите regedit.

Откройте Computer\HKEY_CLASSES_ROOT\*\shell and Computer\HKEY_CLASSES_ROOT\*\shellex для поиска объектов контекстного меню и удалите ненужные.

Примечание: рекомендуется сделать резервную копию реестра (Файл > Экспорт > Сохранить файл). Нажмите «Импортировать» для восстановления сохранённого файла.

Пример удаления 7-Zip из контекстного меню

WindowsWindows 10Руководства

Источник: https://TrashExpert.ru/software/windows/windows-right-click-menu/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.