如果我们要读取一个正在运行的exe可执行程序的数据,那么首先要找到它的句柄才可以,一般我们写辅助的时候经常用到,以下是打开进程的基本代码:
bool CNormalTanksDlg::OpenProc()
{
CString str;
//1.读取游戏窗口句柄
HTanks=::FindWindow(NULL,"Normal-tanks");
if (HTanks!=NULL)
{
//2.获取游戏进程ID
GetWindowThreadProcessId(HTanks,&Pid);
//3.打开进程
Hprocess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,Pid);
if (Hprocess!=0)
{
//打开进程成功
return TRUE;
}
else
{
// 打开失败
AfxMessageBox("打开游戏进程失败!");
return FALSE;
}
}else{
//查找游戏句柄失败
AfxMessageBox("请运行游戏后再开启软件!");
KillTimer(0);
}
return FALSE;
}
打开进程成功以后我们就可以执行WriteProcessMemory和ReadProcessMemory操作啦,是不是很简单?