获得鼠标所指的窗口的内容

  1. void CTestDlg::InitDlg()
  2. {
  3.     CListCtrl *pList = static_cast<CListCtrl*>(GetDlgItem(IDC_LIST1));
  4.     if (pList == NULL)
  5.     {
  6.         AfxMessageBox("not found");
  7.         return;
  8.     }
  9.     
  10.     pList->SetExtendedStyle(pList->GetExtendedStyle() | LVS_EX_FULLROWSELECT);
  11.     
  12.     pList->InsertColumn(0, _T("title"), LVCFMT_LEFT, 80);
  13.     pList->InsertColumn(1, _T("comment"), LVCFMT_LEFT, 80);
  14.     pList->InsertColumn(2, _T("credit"), LVCFMT_LEFT, 80);
  15.     
  16.     pList->InsertItem(0, _T("abc"));
  17.     pList->SetItemText(0, 1, _T("def"));
  18.     pList->SetItemText(0, 2, _T("fss"));
  19.     
  20.     pList->InsertItem(1, _T("xx"));
  21.     pList->SetItemText(1, 1, _T("yy good"));
  22.     pList->SetItemText(1, 2, _T("zz"));
  23.     
  24. }
  25. void CTestDlg::OnBtnGet() 
  26. {
  27.     CPoint pt;
  28.     GetCursorPos(&pt);
  29.     HWND hWnd = ::WindowFromPoint(pt);
  30. /*
  31. //  HWND   hWnd   =   (HWND)0x000C0532; //ListCtrl的句柄   
  32.     DWORD   dwProcess;   
  33.     HANDLE   hProcess;   
  34.     
  35.     GetWindowThreadProcessId(hWnd,   &dwProcess);   
  36.     
  37.     char   buf[1024];   
  38.     LVITEM*   pItem   =   (LVITEM*)buf;   
  39.     //   申请内存   
  40.     hProcess = OpenProcess(PROCESS_ALL_ACCESS,   false,   dwProcess);   
  41.     LPLVITEM pTemp = (LPLVITEM)VirtualAllocEx(hProcess,   0,   1024,   MEM_COMMIT,   PAGE_READWRITE);     
  42.     
  43.     memset(pItem,   0,   sizeof(buf));   
  44.     
  45.     pItem->pszText = (char*)((char*)pTemp   +   sizeof(LVITEM));   
  46.     pItem->cchTextMax   =   1024   -   sizeof(LVITEM);   
  47.     pItem->iSubItem   =   1; //第幾列   
  48.     pItem->mask   =   LVIF_TEXT;   
  49.     
  50.     DWORD   dWord   =   0;   
  51.     WriteProcessMemory(hProcess,   pTemp,   pItem,   sizeof(buf),&dWord);   
  52.     
  53.     ::SendMessage(hWnd,     
  54.         LVM_GETITEMTEXT,     
  55.         (WPARAM)2, //第幾行   
  56.         (LPARAM)pTemp);   
  57.     
  58.     //   读数据   
  59.     ReadProcessMemory(hProcess,   pTemp,   pItem,   sizeof(buf),&dWord);   
  60.     pItem->pszText   =   (char*)((char*)pItem   +   sizeof(LVITEM));   
  61.     AfxMessageBox(pItem->pszText);
  62.     //   释放内存   
  63.     VirtualFreeEx(hProcess,   pTemp,   1024,   MEM_RELEASE);   
  64.     CloseHandle(hProcess);
  65.     */
  66.     CEdit *pEdit = (CEdit *)(CWnd::FromHandle(hWnd));
  67.     CString str;
  68.     pEdit->GetWindowText(str);
  69.     AfxMessageBox(str);
  70. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值