在其他应用程序中捕获按钮单击事件

时间:2019-06-13 06:57:31

标签: c# winforms

我想捕获在Windows窗体应用程序上单击的按钮的单击事件,让我们在应用程序A 中说,我想在应用程序B 中捕获它。也是Windows窗体应用程序。

我已经创建了两个应用程序,并在应用程序A中添加了按钮。现在在应用程序A中单击按钮时,我想在应用程序B中捕获事件。

请指导。

3 个答案:

答案 0 :(得分:3)

没有在不同进程之间共享.NET事件的“快速”方法。 您需要在引发该事件的同一应用程序中捕获该事件,在应用程序A与应用程序B之间实现进程间通信机制(WCF,套接字等),然后使用该机制将事件数据从A发送到B。 / p>

有关更多详细信息,请参见此问题和相关答案:Listen for events in another application

答案 1 :(得分:0)

您可以使用SetWinEventHook WH_MOUSE_LL 挂钩 (P /调用)

(已在Windows 10和VS 2015上测试)

(也是IUIAutomationEventHandler,但更为复杂)

答案 2 :(得分:0)

我可以向您解释,否则您将如何捕获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
}

您也可以在Class中创建此实例,并使其更简单。