c#阅读其他应用程序列表框和子列表框?

c#阅读其他应用程序列表框和子列表框?,c#,listview,C#,Listview,如何阅读其他应用程序listview和子listview?在主视图上单击一个项目后,该程序将有一个主listview和几个其他的小listview 我想创建一个可以读取所有列表视图的应用程序,我该如何做呢?实现这一目标的最佳方法是什么?有多种方法 支持的方法是使用像UIAutomation这样的自动化API,它编程非常简单。如果另一个应用程序正在使用标准的Windows列表视图控件,那么它应该可以通过UIAutomation访问。如果另一个应用程序使用非窗口控件(例如WPF、Qt),则您依赖于实

如何阅读其他应用程序listview和子listview?在主视图上单击一个项目后,该程序将有一个主listview和几个其他的小listview


我想创建一个可以读取所有列表视图的应用程序,我该如何做呢?实现这一目标的最佳方法是什么?

有多种方法

支持的方法是使用像UIAutomation这样的自动化API,它编程非常简单。如果另一个应用程序正在使用标准的Windows列表视图控件,那么它应该可以通过UIAutomation访问。如果另一个应用程序使用非窗口控件(例如WPF、Qt),则您依赖于实现UIAutomation支持的应用程序

另一种常用的尝试方法是向列表视图控件发送windows消息。首先需要枚举应用程序主窗口的子窗口,以便找到列表视图窗口。然后可以发送控制消息以获取其内容。这听起来很容易,但实际上相当棘手。原因是这些消息要求您提供指向其他进程地址空间中有意义的结构的指针。这涉及到对
OpenProcess
VirtualAlloc
WriteProcessMemory
ReadProcessMemory
等的调用。要正确使用它是相当困难的


在我看来,您应该选择自动化API。

它的简单程度取决于其他应用程序的编码方式。如果它使用Win32,您可以P/调用FindWindow/VirtualAllocEx/GetWindowText/ReadProcessMemory函数,并非常轻松地完成。您想从中读取的另一个应用程序是由您创建的吗?@Renan Nope是第三方Windows应用程序