2013-11-03 1 views
0

Я пишу программу, которая вставляет дополнительные параметры в контекстное меню заголовка окна из окон, отличных от моего собственного процесса. Вот как я узнал, как это сделать: Adding a custom context menu item to Windows Form title bar. Мне просто нужно иметь действительный дескриптор IntPtr для этого окна. Я тестировал его, и он работает. Вторая часть делает мое приложение (а не другой процесс) что-то делать, когда пользователь выбирает эту опцию из контекстного меню из окна другого процесса. Я не вижу прямого способа обнаружить это. Я знаю, что я могу настроить крючки, чтобы моя программа слушала все сообщения Windows на моей машине (WM_SYSCOMMAND из окна, которое меня интересует), но из того, что я видел, это решение довольно сложно, и мне интересно, есть ли способ назначить какой-нибудь делегат или что-то в этом меню?InsertMenu() при разных процессах и вызывая некоторый код

ответ

1

Сообщения отправляются в окно целевого процесса. Поэтому вам нужно будет запустить ваш код в этом процессе. Это будет связано с инъекцией DLL, и вам придется писать собственный код, а не C#. Вам нужно будет вставить DLL и подклассу окна, которое получает сообщения, чтобы ваш код мог сделать первый снимок.

 Смежные вопросы

  • Нет связанных вопросов^_^