Вызвать событие Button_Click() другого приложения

Это звучит неправдоподобно для меня, но я просто решил спросить.

Существует приложение.NET с кнопкой в ​​нем. Я не могу редактировать исходный код приложения, это уже существующее приложение.

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

Это возможно?

2 ответа

Mmmmmaybe..

Однажды было приложение под названием spy++. Это позволило вам осмотреть окно и увидеть свойства, имена объектов и т. Д.

Spy ++ был портирован на.net (см. [Введите ссылку здесь] [1]

[1]: http://msdn.microsoft.com/en-us/magazine/cc163617.aspx). Вы можете попробовать.

Если вы вставите в раздел "Другие методы ControlProxy", он скажет:

"Есть несколько дополнительных методов, на которые стоит обратить внимание в ControlProxy. Вызовите метод SendMessage, чтобы отправить оконное сообщение элементу управления. Это полезно, если вы хотите создать тестовый жгут. Например, вы можете отправлять сообщения WM_CLICK или WM_KEYDOWN. смоделировать ввод ".

Конечно, это не элегантный и не стабильный подход:)

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

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

В основном вам нужно иметь приложение с кнопкой прослушивания сокета или канала для отправки запроса. Как только он получен, он может затем вызвать собственное событие нажатия кнопки.

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

Другие вопросы по тегам