【发布时间】:2013-11-24 03:05:55
【问题描述】:
tibiaWindow = FindWindow( L"TibiaClient", NULL);
DWORD PID;
GetWindowThreadProcessId( tibiaWindow, &PID );
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID); //Open Process for Read/Write
short mana = 0;
void* ptr = (void*)hProcess+0x3C2D00;
if( !ReadProcessMemory(hProcess, ptr, &mana, 2, 0) ){
return false;
}
else{
statusBar()->showMessage( QString::number(mana), 3000 );
}
return true;
这应该从位于 tibia.exe + 0x3CD2D00 的游戏中读取法力值。但它不起作用。谁能帮我?如何获取该窗口的基地址?
【问题讨论】:
-
定义“不起作用”,如果您遇到看不见的错误,您需要检查返回码。
-
PID 有效吗?进程句柄是否有效?你的偏移量有效吗?游戏有反作弊吗?不工作的信息量不是很大。
-
hProcess是一个进程HANDLE。解释为指向进程基地址的指针是相当有创意的。当然不是你想要的。 -
你要窗口的地址还是控制窗口的程序的地址?
-
@Thomas "窗口的地址"当然没有意义。 Windows 没有地址。