外部应用程序 - 网格内的鼠标单击事件

时间:2012-04-17 16:01:16

标签: c# .net winforms pinvoke

我有一个外部Windows应用程序(没有源代码),里面有一个网格。这是一个单独的过程。当用户通过鼠标点击选择网格中的单元格时,我需要能够读取该单元格中的值。任何人都可以提供一些指示,告诉我需要使用哪些API来捕获和收听事件吗?

1 个答案:

答案 0 :(得分:1)

您最好的选择是UI Automation Overview或可访问性作为旧技术。

另外你可以看看这个Pinvoke SetFocus to a particular control如何在另一个进程上调用东西(几乎与自动化无关,自动化无需工作)

UI自动化是这项工作的最佳工具,然而,缺点是不是每个应用都支持这一点 - 所以这在很大程度上取决于您定位的应用。有些人只支持传统的可访问性(IAccessible,IAccessible2等),通常会有一个'组合'做法。旧的技术不再适用,但你可以尝试在目标窗口中遍历窗口,子窗口(为了这个方向,你可能迟早会需要上述技术)并希望你能从中获取它标准控件,Windows文本,消息等。