@ DavidHeffernan ответил на ваш вопрос, но вы, возможно, не задали правильный вопрос.
Давайте рассмотрим пример, который вы привели: пользователь запускает какое-то произвольное приложение, и вы хотите иметь возможность обнаружить горячую клавишу, отобразить меню, а затем предпринять некоторые действия в зависимости от выбранного пункта меню (и, возможно, даже контекст, например, слово под курсором). Это сложнее, чем просто отображать меню в произвольных координатах экрана.
Я рекомендую использовать AutoHotKey вместо того, чтобы пытаться повторить это на каком-то другом языке программирования. Если вы не знаете об этом, ваш код может запускать сценарии AutoHotKey. IIRC, вы можете скомпилировать скрипты AHK, поэтому вам не нужно устанавливать AHK, только скомпилированные скрипты. AHK, возможно, не самое элегантное из решений, но у него есть глубина и зрелость.
Если это невозможно, то я предлагаю вам изучить Windows Hooks и DLL Injection. Если вы не можете найти какой-либо существующий ранее код или фреймворк, это повлечет за собой немало работы.
Причина такой сложности? Чтобы плавно дополнить другую программу (без проблем с фокусировкой и т. Д.), Вы хотите, чтобы ваш код выполнялся как часть этой другой программы. Механика этого может быть сделана через инъекцию DLL. Однако это только первый шаг. Когда ваш код выполняется в правильном контексте, он должен взаимодействовать с программой «host». Это может быть сложно (это полезно, если у вас есть глубокий опыт работы с сообщениями Windows и Windows API). Если вы хотите, чтобы это работало беспрепятственно с любой произвольной программой, это становится еще сложнее.