#c# #.net #winforms #events
#c# #.net #winforms #Мероприятия
Вопрос:
В моем приложении на c # мне нужно определить, когда пользователь нажимает одну из двух кнопок в другом стороннем приложении.
Я могу получить дескриптор приложения, но MainWindowHandle
возвращает 0.
Я пытался WndProc
, но по какой-то причине событие не сработает в моем приложении.
Как я могу получить / перехватить событие нажатия кнопки из этого приложения в мое?
Комментарии:
1. Это стороннее приложение предоставляет события, которые вы можете подключить? Является ли эта кнопка, используемая в этой третьей стороне, общедоступной для вас? Или даже, по крайней мере, защищено?
2. Можете ли вы внести несколько изменений в стороннюю программу?
3. @user390480: на каком языке и платформе написано стороннее приложение?
4. Я не верю, что кнопки имеют общедоступный доступ. Я не могу изменить приложение. Я думаю, что это написано либо на c , либо, возможно, на версии .NET 2003.
Ответ №1:
Глобальные системные перехваты позволяют приложению перехватывать сообщения Windows, предназначенные для других приложений. Это всегда было сложно реализовать на C #. Этот проект в Codeplex пытается реализовать глобальные системные перехваты путем создания DLL-оболочки на C , которая отправляет сообщения в очередь сообщений приложения для перехвата. Проще говоря, это позволяет реализовать любой тип глобального перехвата Windows из управляемого кода: http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx