给定(纯win32)列表视图的HWND,我该如何获取其项目?

时间:2014-06-12 09:08:03

标签: c# winapi automation

我想检查作为另一个应用程序一部分的多列列表视图的内容。我想让它的行可以单独访问列。我有控制的HWND。列表视图是commctl32.dll提供的列表视图。到目前为止,我一直在查看this文章,但我对它有点困惑,这看起来像是WinAPI中更“神秘”的部分。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您链接到的文章将涵盖控件进入过程中的列表视图处理。对于不同进程中的列表视图,事情很复杂。在那种情况下,您需要的消息涉及指向结构的指针,例如指向LVITEM结构的指针。系统不会在进程边界上封送这些指针。因此,为了完成这项工作,您需要在其他进程的虚拟地址空间中分配内存。这涉及到OpenProcessVirtualAllocExWriteProcessMemoryReadProcessMemory的来电。没什么好玩的。网上有很多这个过程的例子,我不想在这里添加另一个。

然而,这是解决问题的错误方法。您应该使用其中一个自动化接口来自动化其他应用程序。首先看UI Automation