获取其他进程Listctrl的数据
2011-09-02 01:44
281 查看
// // http://www.codeproject.com/KB/threads/int64_memsteal.aspx // HANDLE InjectProcess(HWND listview) { unsigned long pid; HANDLE process; GetWindowThreadProcessId(listview, &pid); process=OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_READ| PROCESS_VM_WRITE|PROCESS_QUERY_INFORMATION, FALSE, pid); return process; } void* MallocInPocess(HANDLE process, size_t size, void *def_val=NULL) { void* p = VirtualAllocEx(process, NULL, size, MEM_COMMIT, PAGE_READWRITE); if(def_val) VERIFY(WriteProcessMemory(process, p, def_val, size, NULL)); return p; } void FreeInPocess(HANDLE process, void* _lvi) { VirtualFreeEx(process, _lvi, 0, MEM_RELEASE); } CString CListCtrl_GetItemText(HWND m_hWnd, HANDLE hProcess, int nItem, int nSubItem) { ASSERT(::IsWindow(m_hWnd)); CString s; // // lvi // LVITEM lvi; memset(&lvi, 0, sizeof(LVITEM)); lvi.iSubItem = nSubItem; const int nLen = 1280; int nRes; lvi.cchTextMax = nLen; //memory TCHAR *str = (TCHAR*)MallocInPocess(hProcess, nLen*sizeof(TCHAR)); if(!str) return s; lvi.pszText = str; LVITEM *plvi = (LVITEM*)MallocInPocess(hProcess, sizeof(LVITEM), &lvi); if(!plvi) return s; nRes = (int)::SendMessage(m_hWnd, LVM_GETITEMTEXT, (WPARAM)nItem, (LPARAM)plvi); TCHAR str2[nLen]; VERIFY(ReadProcessMemory(hProcess, str, str2, 512, NULL)); s = str2; FreeInPocess(hProcess, plvi); FreeInPocess(hProcess, str); return s; } void Ctest2Dlg::OnBnClickedButton1() { HWND hMain = ::FindWindowEx(NULL,NULL,NULL,_T("test1")); HWND hList = ::FindWindowEx(hMain, NULL , _T("SysListView32"), NULL); ASSERT(hList); CListCtrl List; VERIFY(List.Attach(hList)); int nItem = List.GetItemCount(); int nCol = List.GetHeaderCtrl()->GetItemCount(); HANDLE hPoc = InjectProcess(hList); for(int i=0; i<nItem; i++) { for(int j=0; j<nCol; j++) { CString szText = CListCtrl_GetItemText(hList,hPoc,i,j); TRACE("%s\n", szText); MessageBox(szText); } } List.Detach(); }
相关文章推荐
- VC获取其他进程ListCtrl内容
- VC获取其他进程ListCtrl内容
- VC获取其他进程ListCtrl内容
- VC获取其他进程ListCtrl内容
- 获取其他进程listctrl的内容
- VC获取其他进程ListCtrl内容
- 跨进程获取其他程序的DBGrid内容
- 在shell中获取其他进程的pid
- 获取其他进程命令行
- 在其他应用中获取SharedPreferences 保存的数据
- android学习:使用它ContentProvider获取其他程序共享的数据
- php从接口获取数据转成可以用的数组或其他(含转换编码)
- 获取其他进程中ListBox和ComboBox的内容
- 利用XMLHTTP 从其他页面获取数据
- jqGrid userdata 获取不属于表格的其他数据
- 【VC版】如何获取其他进程中ListView控件中的内容
- Windows获取其他进程中Edit控件的内容
- php获取图片的拍摄及其他数据信息
- js页面用定时任务通过AJAX获取后台数据,但是从这个页面跳转到其他页面后,定时任务仍然在定时请求后台
- 获取其他进程的命令行(ReadProcessMemory其它进程的PPROCESS_PARAMETERS和PEB结构体)