c#检测按下了哪个消息框(源自另一个应用程序)按钮

时间:2014-02-23 11:50:51

标签: c# winapi hook

另一个应用程序显示一个消息框(其中包含唯一文本),用户选择是/否。 如何检测他在c#中的压力? (最好在.Net中达到3.5)。我可以用FindWindowEx(在另一个线程上)进行轮询,但是如何检测按下了什么按钮?此外,我认为投票不是最好的工作方式。

我需要知道用户在其他应用中选择了什么,因此我可以在自己的应用中做出相应的反应。我无法访问其他应用的源代码。另外要说清楚我不想自己点击任何按钮。我不怕一点c ++,winapi和pinvoke

2 个答案:

答案 0 :(得分:0)

要监控其他应用程序中的UI事件,您可以使用UI Automation。要解决您的特定问题,您需要订阅特定事件(请参阅Subscribing to UI Automation Events)。为此,请使用UIA_Invoke_InvokedEventId IUIAutomation::AddAutomationEventHandler致电Event Identifier

虽然UI Automation可用于解决您的问题,但它是一种辅助技术,主要用于实现可访问性需求和自动UI测试。

答案 1 :(得分:-1)

您可以使用匿名管道或命名管道或WCF(Windows Communications Foundation)。