Перехват события нажатия кнопки в другом приложении - PullRequest
0 голосов
/ 13 июня 2019

Я хочу поймать событие нажатия кнопки, которая нажата в Windows Form Приложение, скажем, в Приложение A , и я хочу поймать его в Приложение B , которое также являетсяПриложение Windows Form.

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

Пожалуйста, руководство.

Ответы [ 3 ]

3 голосов
/ 13 июня 2019

Не существует быстрого способа обмена событиями .NET между различными процессами.Вам нужно перехватить событие в том же приложении, которое его вызвало, реализовать механизм межпроцессного взаимодействия (WCF, сокет, ...) между приложением A и приложением B и использовать его для отправки данных события из A в B.

См. Этот вопрос и связанные с ним ответы для более подробной информации: Прослушивание событий в другом приложении

0 голосов
/ 13 июня 2019

Я могу объяснить вам, как иначе вы можете поймать событие Button Click.

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

Пример формы 1:

var _secondForm = new Form2();

private void Form1_Load(object sender, EventArgs e)
{
    _secondForm.Open();
}

private void button1_Click(object sender, EventArgs e)
{
    MethodInSecondForm()
}

и ваша вторая форма:

public void MethodInSecondForm()
{
    // Event here
}

Вы также можете создать этот экземпляр в классе и упростить его.

0 голосов
/ 13 июня 2019

Вы можете использовать SetWinEventHook или WH_MOUSE_LL крючок (P / Invoke)

(протестировано в Windows 10, с VS 2015)

(также IUIAutomationEventHandler , но более сложный)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...