gpt4 book ai didi

c - 在 C 中使用 LVM_GETITEM 和 SendMessage 获取 LVITEM 的文本

转载 作者:行者123 更新时间:2023-11-30 16:03:01 25 4
gpt4 key购买 nike

我正在尝试从另一个进程的 ListView 中读取文本。到目前为止,我已经能够获得行数和列数。现在我想遍历每个单元格并阅读它。我做了一些研究,发现我需要使用 SendMessage 来获取每个单元格的 LVITEM。我认为 LVITEM.iItem 必须是行 #,而 LVITEM.iSubItem 必须是列 #。另外我将如何将文本放入我的 char* 中。我看到一些使用 CString::GetBuffer 的示例。但我在 c 语言中,所以我没有这个,是否有等效的或其他方法可以做到这一点?

char* itemText;

LVITEM itemInfo = {0};
itemInfo.iItem = r; // r is an int. this should be row # right?
itemInfo.iSubItem = c; // c is an int, this should be the column # right?
itemInfo.mask = LVIF_TEXT;
itemInfo.cchTextMax = 256;
itemInfo.pszText = itemText;
SendMessage(procList, 0x1005, 0, (LPARAM)&itemInfo);

最佳答案

由于包含文本的内存块归其他进程所有,因此您需要使用一些技巧将文本从进程编码到您的进程中。

这是我在 2004 年写的一篇博客文章,演示了如何做到这一点。请注意,您需要拥有管理员权限才能执行此操作。

http://taylorza.blogspot.com/2009/08/archive-hacking-my-way-across-process.html

关于c - 在 C 中使用 LVM_GETITEM 和 SendMessage 获取 LVITEM 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4519525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com