得到了另一个程序中某控件(由listview派生)的hwnd,怎么读出该控件中的内容? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 转:---如何得到其它应用程序里一个 ListCtrl 里的数据?HWND hWnd = (HWND)0x000C0532; //ListCtrl的句柄DWORD dwProcess;HANDLE hProcess;GetWindowThreadProcessId(hWnd, &dwProcess);char buf[1024];LVITEM* pItem = (LVITEM*)buf;// 申请内存hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, dwProcess);LPLVITEM pTemp = (LPLVITEM)VirtualAllocEx(hProcess, 0, 1024, MEM_COMMIT, PAGE_READWRITE); memset(pItem, 0, sizeof(buf));pItem->pszText = (char*)((char*)pTemp + sizeof(LVITEM));pItem->cchTextMax = 1024 - sizeof(LVITEM);pItem->iSubItem = 0; //第幾列pItem->mask = LVIF_TEXT;DWORD dWord = 0;WriteProcessMemory(hProcess, pTemp, pItem, sizeof(buf),&dWord);::SendMessage(hWnd, LVM_GETITEMTEXT, (WPARAM)1, //第幾行 (LPARAM)pTemp);// 读数据ReadProcessMemory(hProcess, pTemp, pItem, sizeof(buf),&dWord);pItem->pszText = (char*)((char*)pItem + sizeof(LVITEM));// 释放内存VirtualFreeEx(hProcess, pTemp, 1024, MEM_RELEASE);CloseHandle(hProcess); C++ 通过ADO连接ACCESS数据库时出错 如何把剪切板的位图拷贝到内存中? 对控件上的像素扫描再重绘的问题 带输入输出参数的存储过程调用不同环境不成功??? 如何获得已知项所在行 执行程序时为什么会弹出如此对话框? 求教:怎样将int型数字转化为CString型?如215? 怎么样删除工具栏上的图表,然后建立自己的图表? ADO头文件和#import问题 还可以另外加分 如何学习 一个奇怪的问题,有兴趣者可以look一下 在VC中调用CPU I/O指令?如何进行,如inp,inw,outp等!
转:---
如何得到其它应用程序里一个 ListCtrl 里的数据?
HWND hWnd = (HWND)0x000C0532; //ListCtrl的句柄
DWORD dwProcess;
HANDLE hProcess;GetWindowThreadProcessId(hWnd, &dwProcess);char buf[1024];
LVITEM* pItem = (LVITEM*)buf;
// 申请内存
hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, dwProcess);
LPLVITEM pTemp = (LPLVITEM)VirtualAllocEx(hProcess, 0, 1024, MEM_COMMIT, PAGE_READWRITE); memset(pItem, 0, sizeof(buf));pItem->pszText = (char*)((char*)pTemp + sizeof(LVITEM));
pItem->cchTextMax = 1024 - sizeof(LVITEM);
pItem->iSubItem = 0; //第幾列
pItem->mask = LVIF_TEXT;DWORD dWord = 0;
WriteProcessMemory(hProcess, pTemp, pItem, sizeof(buf),&dWord);::SendMessage(hWnd,
LVM_GETITEMTEXT,
(WPARAM)1, //第幾行
(LPARAM)pTemp);// 读数据
ReadProcessMemory(hProcess, pTemp, pItem, sizeof(buf),&dWord);
pItem->pszText = (char*)((char*)pItem + sizeof(LVITEM));
// 释放内存
VirtualFreeEx(hProcess, pTemp, 1024, MEM_RELEASE);
CloseHandle(hProcess);