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

本文关键字:列表 应用程序 读取 其他 | 更新日期: 2023-09-27 18:26:14

如何读取另一个应用程序列表视图和子列表视图?一旦在主视图上单击某个项目,此程序就有一个主列表视图和其他一些迷你列表视图。

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

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

有很多方法可以做到这一点。

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

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

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