关于MFC读取外部程序的ListControl内容

本文探讨了MFC程序在尝试读取其他应用ListControl内容时遇到的问题,即只能读取部分列内容。代码示例展示了如何通过获取窗口PID、打开进程并使用Windows API来尝试读取,但遇到某些软件时出现异常。作者提到在读取任务管理器时操作正常,同时提供了可能的解决方案和交流方式。
摘要由CSDN通过智能技术生成

       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,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值