如何阅读其他应用程序列表视图和子列表视图?一旦在主视图上单击一个项目,该程序就会有一个主列表视图和一些其他迷你列表视图。
我想创建一个可以读取所有列表视图的应用程序,我该如何去做?实现这一目标的最佳方法是什么?
答案 0 :(得分:2)
有很多方法可以做到这一点。
支持的方法是使用UIAutomation等自动化API,编程非常简单。如果其他应用程序使用标准Windows列表视图控件,则应通过UIAutomation访问它。如果另一个应用程序使用非窗口控件(例如WPF,Qt),那么您依赖于实现对UIAutomation的支持的应用程序。
另一种常用的方法是将Windows消息发送到列表视图控件。首先,这涉及枚举应用程序主窗口的子窗口,以便找到列表视图窗口。然后,您可以发送控制消息以获取其内容。这听起来很容易,但实际上相当棘手。原因是消息要求您提供指向其他进程地址空间中有意义的结构的指针。这涉及到OpenProcess
,VirtualAlloc
,WriteProcessMemory
,ReadProcessMemory
等的来电。要做到这一点非常棘手。
在我看来,您应该选择自动化API。