Salut, tu poste dans la mauvaise section.
Dans ton code il y a trop de chose qui ne veulent rien dire.
Je vais pas les énumérer, à la place je te passe ce code et essaye de comprendre ce qui ne va pas dans le tient.
[spoiler]
#include <iostream>
#include <windows.h>
using namespace std;
HANDLE GetGTASAHandle()
{
unsigned int l_iProcessID;
HWND l_hwndWindowHandle;
HANDLE l_handle;
l_iProcessID = -1;
l_handle = 0;
l_hwndWindowHandle = FindWindowA(0, "GTA: San Andreas");
if(l_hwndWindowHandle != 0)
{
GetWindowThreadProcessId(l_hwndWindowHandle, &l_iProcessID);
l_handle = OpenProcess(PROCESS_ALL_ACCESS, 0, l_iProcessID);
}
return l_handle;
}
unsigned int ReadInt(HANDLE a_Handle, unsigned int a_iAddress)
{
unsigned int l_iValue, l_iReadSize;
ReadProcessMemory(a_Handle, (void*)a_iAddress, (void*)&l_iValue, sizeof(unsigned int), &l_iReadSize);
return l_iValue;
}
float ReadFloat(HANDLE a_Handle, unsigned int a_iAddress)
{
float l_fValue;
unsigned int l_iReadSize;
ReadProcessMemory(a_Handle, (void*)a_iAddress, (void*)&l_fValue, sizeof(unsigned int), &l_iReadSize);
return l_fValue;
}
float GetLocalPlayerHealth(HANDLE a_GTAHandle)
{
unsigned int l_iLocalPlayerPed;
// 0xB6F5F0 - Local Player Pointer
l_iLocalPlayerPed = ReadInt(a_GTAHandle, 0xB6F5F0);
if(l_iLocalPlayerPed != 0)
{
return ReadFloat(a_GTAHandle, l_iLocalPlayerPed + 0x540);
}
return 0.0f;
}
int main()
{
HANDLE l_GTAHandle;
// on récupère le process id de gta sa
l_GTAHandle = GetGTASAHandle();
// si nous n'avons pas réussi à le récupérer
if(l_GTAHandle == 0)
{
// on quitte le programme
cout << "Impossible de recuperer le \"process handle\" !" << endl;
return 0;
}
while(1)
{
cout << "Player Health " << GetLocalPlayerHealth(l_GTAHandle) << endl << endl;
Sleep(1000);
}
return 0;
}
[/spoiler]