MFC程序读取其他应用程序的Listcontrol内容时,只能读取到目标软件Listcontrol的部分列内容。但是读取任务管理器时,是正常的,我也尝试过读取一些其他软件,都是正常的。代码是我在网上查的比较经典的一种方法。代码如下:
DWORD pid;
HANDLE process;
LVITEM lvi, *_lvi;
char firstItem[512], secondItem[512], thirdItem[512], fourthItem[512], fifthItem[512], sixthItem[512], seventhItem[512], eighthItem[512], ninthItem[512];
char *_firstItem, *_secondItem, *_thirdItem, *_fourthItem, *_fifthItem, *_sixthItem, *_seventhItem, *_eighthItem, *_ninthItem;
memset(firstItem, 0, 512);
memset(secondItem, 0, 512);
memset(thirdItem, 0, 512);
memset(fourthItem, 0, 512);
memset(fifthItem, 0, 512);
memset(sixthItem, 0, 512);
memset(seventhItem, 0, 512);
memset(eighthItem, 0, 512);
memset(ninthItem, 0, 512);
// 获取窗口PID、打开进程
GetWindowThreadProcessId(hWnd, &pid);
process = OpenProcess( PROCESS_ALL_ACCESS, TRUE, pid);
if(!process)
return FALSE;
// 申请内存空间
_lvi = (LVITEM*)VirtualAllocEx(process, NULL, sizeof(LVITEM), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
_firstItem = (char*)VirtualAllocEx(process, NULL,