请问如何用SendMessage取得一个listview的一列的全部项目? 如题,并得到各项的字符串。希望能够给出代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CString strTemp; for(int i=0; i<m_list.GetItemCount(); i++) { strTemp = m_list.GetItemText(i, 1); } CString strTemp; for(int i=0; i<m_list.GetItemCount(); i++) { strTemp = m_list.GetItemText(i, 1); } 我想我是表达错了,我希望得到别的程序的,应该要用SendMessage吧? FindWindow得到窗口句柄,然后得到listctrl的ID,然后得到列值 转: 回复人: fbmsf(FBM) ( ) 信誉:100 2004-06-18 15:52:00 得分:0 ---如何得到其它应用程序里一个 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);----------------------------------------------------------------------------------------------- 定时器消息的一个小问题 文本框的图标问题 EVC下有专门的帮助文档吗? 添加了CEDIT的控件,怎么使它每次使用后都恢复为空白 一个怪问题 我第一次来硬件区,请问一下串口是接主板上的哪个接口啊? 如何屏弊掉应用程序窗口右上角的关闭按钮? 一个对话框放在靠近屏幕边缘的地方,怎么才能让它自动缩进,就想MSN消息那样 不通过KeyDown事件,如何判断是否 ctrl 是否已经按下 大家看下,如何抓住这3句代码的异常?? vc新手提问。 多线程数据库插入混乱问题
for(int i=0; i<m_list.GetItemCount(); i++)
{
strTemp = m_list.GetItemText(i, 1);
}
for(int i=0; i<m_list.GetItemCount(); i++)
{
strTemp = m_list.GetItemText(i, 1);
}
回复人: fbmsf(FBM) ( ) 信誉:100 2004-06-18 15:52:00 得分:0
---
如何得到其它应用程序里一个 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);-----------------------------------------------------------------------------------------------