2024年3月29日发(作者:)
向其他程序的ListView控件发送LVM_GETITEMTEXT》
一:问题的由来与解决方法:
首先给大家介绍一个我编写的小程序――CallFI(Call FileInfo),他与2K/XP中的(Windows
TaskManager)程序配合使用。他能获取指定进程的路径并依此调用FileInfo(文件类型分析工具)程序,这样你
就能更加全面得了解这个进程了。
当你选中一个进程并运行CallFI后,CallFI首先向中的ListView控件发送
LVM_GETNEXTITEM消息来确定你所选定的是哪个index,然后再发送LVM_GETITEMTEXT消息获取相应的
值(PID),以便根据该PID进行后面的一系列操作。index很顺利得就得到了,但当我直接向ListView控件发
送LVM_GETITEMTEXT消息时却无法得到我想要的返回值!这就是本文所要解决的问题。
在GOOGLE上我找到了Cory Nelson写的《Stealing Program's Memory》一文,问题的关键在于:利
用WriteProcessMemory()函数将LVITEM结构插入到目标进程中……
二:具体实践:
#include
#include
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
向其他程序的ListView控件发送LVM_GETITEMTEXT
1
int nCmdShow)
{
HWND hwnd;
int iItem=0;
LVITEM lvitem, *plvitem;
char ItemBuf[512],*pItem;
DWORD PID;
HANDLE hProcess;
hwnd=FindWindow("#32770","Windows 任务管理器");
hwnd=FindWindowEx(hwnd,0,"#32770",0);
hwnd=FindWindowEx(hwnd,0,"SysListView32",0);
if (!hwnd)
MessageBox(NULL,"[Windows 任务管理器] 尚未启动!","错误!",NULL);
else
向其他程序的ListView控件发送LVM_GETITEMTEXT
2
发布评论