我完全知道如果我尝试获取我需要解决内存空间边界的另一个应用程序li​​stview项的缓冲区,那么我正在做的是钩子,钩子返回的很好,没有错误,那么成功

enter code here
LVITEM lvi;
lvi.cchTextMax = 552;
lvi.mask = LVIF_TEXT;

_tfreopen(path,_T("w"),stdout);

for (int nItem = 0; nItem < nMaxItems; nItem++) {

    // Get the name and position of a ListView item.
    lvi.iSubItem = 0;
    lvi.iItem = nItem;
    lvi.pszText = szName;

    ListView_GetItem(hWndLV, &lvi);
    wprintf(L"%s, ", szName);
    wprintf(L"%s, ", lvi.pszText);
    for ( int subitem = 0; subitem < columns; subitem++)
    {

        lvi.iSubItem = subitem;
        lvi.iItem = nItem;
        lvi.pszText = szName;

        ListView_GetItem(hWndLV, &lvi);

        wprintf(L"%s, ", szName);
        wprintf(L"%s, ", lvi.pszText);

    }
    wprintf(L"%s", "\n");

}

wprintf(L"%s", GetLastError());
fclose (stdout);


getlasterror没有错误,这在我尝试过的除此应用之前的任何其他列表视图上都非常完美,是否仍可能以某种方式获取项目文本?

最佳答案

也许这是一个所有者绘制的列表视图(LVS_OWNERDRAWFIXED)?在这种情况下,如果没有拥有它的应用程序的私人知识,就不可能获得文本。

09-13 00:16