植物大战僵尸(初始化游戏数据 )

发布时间 2023-12-15 19:34:13作者: 陈若麟
#include <iostream>
#include <windows.h> 
using namespace std;
/*声明变量 */
HWND hand=NULL; //游戏窗口
DWORD pid=0;//游戏进程ID
HANDLE hProcess=NULL;//进程对象 
DWORD BaseValue=0;//游戏数据存放的基础值 

/*声明方法/函数 */
bool startGame(); //初始化游戏数据 


int main(int argc, char** argv) {
	bool Result=false; 
	Result=startGame();
	if(Result==false){
		return 0;
	}	
	
		
	return 0;
}
bool startGame(){
	//查找电脑是否运行了植物大战僵尸
	hand= FindWindow("MainWindow","植物大战僵尸中文版");
	cout<<hand<<endl;
	if(hand==NULL){
		cout<<"游戏没有运行"; 
		return false;
	}
	cout<<"窗口:"<<hand<<endl; 
	GetWindowThreadProcessId(hand,&pid);
	if(pid==0){
		cout<<"无法找到植物大战僵尸进程";
		return false;
	}
	cout<<"进程:"<<pid<<endl;
	hProcess=OpenProcess(PROCESS_ALL_ACCESS,
	false,
	pid);
	if(hProcess==NULL){
		cout<<"无法打开进程"<<endl;
		return false; 
	}
	cout<<"打开进程:"<<hProcess<<endl;
	DWORD BaseAddress=0x006A9EC0;//获取游戏数据的基础地址 
	bool Result= Read Process Memory(
		hProcess,        //读取哪一个进程 
		(LPVOID)BaseAddress, //内存地址是多少 
		&BaseValue,    //读取数据放哪 
		4,   //数据存储长度 
		NULL //实际读取的长度 
	);
	if(Result==false){
		cout<<"初始化基础地址失败";
		return false; 
	}	
	return true;
}