char szTitle[]="坦克大战修改";
DWORD addr=0x004C9C84; //存放炮弹数量的内存地址
DWORD pid; //坦克大战的PID
int val=1000; //炮弹要修改的数量
//-------------------------------------------------------------------------------------------------
// WndProc- 窗口函数
//-------------------------------------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam)
{
// int wmId,wmEvent;
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_TIMER:
{
HWND hw=FindWindow(NULL,"Normal-tanks"); //FindWindow()得到坦克大战程序的句柄
HANDLE hProcess; //定义坦克大战的进程句柄
if (hw!=0)
{
SetForegroundWindow(hw); //使我们的坦克大战设置为当前窗口
GetWindowThreadProcessId(hw,&pid); //得到游戏的PID号
hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid); //打开进程PROCESS_ALL_ACCESS参数,制定进程可读可写
WriteProcessMemory(hProcess,(LPVOID)addr,&val,4,0); //向坦克大战进程内存中写入数据
}
else
MessageBox(g_hWnd,"游戏还没有运行吧!","提示信息",MB_OK|MB_ICONINFORMATION);
}
default:
return (DefWindowProc(hWnd,message,wParam,lParam));
}
return 0;
} //-------------------------------------------------------------------------------------------------
// InitApplication-注册窗口类
//-------------------------------------------------------------------------------------------------
BOOL InitApplication(HINSTANCE hInstance)
{
WNDCLASSEX winclass;
winclass.cbSize = sizeof(WNDCLASSEX);
winclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc = WndProc;
winclass.cbClsExtra = 0;
winclass.cbWndExtra = 0;
winclass.hInstance = hInstance;
winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
winclass.hCursor = LoadCursor(NULL, IDC_ARROW);