要在C++中跨进程获取SysListView32控件的内容,你可以使用Windows API函数来实现。下面是一个示例代码片段,演示了如何实现这一点:
#include <iostream>
#include <Windows.h>
int main()
{
// 获取SysListView32控件的句柄
HWND listViewHandle = FindWindow(L"SysListView32", L"ListView Window");
if (listViewHandle == NULL)
{
std::cout << "Failed to find SysListView32 control" << std::endl;
return 1;
}
// 获取SysListView32控件中的子项数量
int itemCount = ListView_GetItemCount(listViewHandle);
std::cout << "Item count: " << itemCount << std::endl;
// 遍历并获取每个子项的文本内容
for (int i = 0; i < itemCount; i++)
{
const int bufferSize = 256;
WCHAR itemText[bufferSize];
LVITEM lvItem;
lvItem.mask = LVIF_TEXT;
lvItem.iItem = i;
lvItem.iSubItem = 0;
lvItem.pszText = itemText;
lvItem.cchTextMax = bufferSize;
ListView_GetItem(listViewHandle, &lvItem);
std::wcout << "Item " << i << " text: " << itemText << std::endl;
}
return 0;
}
请注意,你需要根据实际情况调整SysListView32控件的窗口标题和要获取的子项文本的列(通过调整lvItem.iSubItem
的值)。