2024年3月29日发(作者:)

计算机系列教学文档

------syslistview32的内容获取

文件状态:

[ ] 草稿

[√] 正式发布

当前版本: V1.0

作 者: 李星华

完成日期: 2014-05-07

个人博客:

系列文档-技术文档

作者:

lixh

syslistview32的内容获取

void ListGetText(HWND hWnd, int row, int col, char* pSave, intsz)

{

const intBUFSIZE = 1024;

DWORD dwProcess;

HANDLE hProcess;

char buf[BUFSIZE];

LVITEM* pItem =(LVITEM*)buf;

pSave[0] = ’0′;

GetWindowThreadProcessId(hWnd, &dwProcess);

// 申请内存

hProcess

dwProcess);

LPLVITEM pTemp =(LPLVITEM)VirtualAllocEx(hProcess, 0,

BUFSIZE, MEM_COMMIT,PAGE_READWRITE);

memset(pItem, 0, sizeof(buf));

pItem->pszText = (char*)((char*)pTemp + sizeof(LVITEM));

pItem->cchTextMax = BUFSIZE - sizeof(LVITEM);

pItem->iSubItem = col; //列

=OpenProcess(PROCESS_ALL_ACCESS, false,

1 / 3

系列文档-技术文档

作者:

lixh

pItem->mask = LVIF_TEXT;

DWORD dWord = 0;

WriteProcessMemory(hProcess,

sizeof(buf),&dWord);

int nChar =SendMessage(hWnd,

LVM_GETITEMTEXT,

(WPARAM)row, //行

(LPARAM)pTemp);

//printf(“ListGetText read char count : %dn”, nChar);

//读数据

ReadProcessMemory(hProcess,

sizeof(buf),&dWord);

pItem->pszText = (char*)((char*)pItem + sizeof(LVITEM));

// 释放内存

VirtualFreeEx(hProcess,

MEM_RELEASE);

CloseHandle(hProcess);

sprintf(pSave, ”%s”, pItem->pszText);

}

pTemp, BUFSIZE,

pTemp, pItem,

pTemp, pItem,

2 / 3