All pastes #2049782 Raw Edit

Unnamed

public cpp v1 · immutable
#2049782 ·published 2011-04-23 15:22 UTC
rendered paste body
#pragma once#include <string>#include <Windows.h>extern HANDLE g_Process;template <class Type> class Cheat{private:	void*		m_Addr;	wstring		m_ProcName; //most errors are here??	DWORD		m_Size; 	Type					m_Value,				m_PreValue;public:	Cheat(wstring ProcessName, void* Address, Type Value);	~Cheat();	int ModifyProcess(Type* Val, Type* PreVal = NULL);	int EnableCheat(bool SavePre = false);	int DisableCheat();};template <class Type> Cheat<Type>::Cheat(wstring ProcessName, void* Address, Type Value){	DWORD	ProcessID; 	HWND	SA; 	m_Addr		= Address;	g_Process	= NULL;	m_ProcName	= ProcessName;	m_Value		= Value;	m_PreValue	= NULL;	m_Size		= sizeof(Type);	if(!g_Process)	{		if((SA = FindWindow(NULL, _T(m_ProcName.c_str()))))		{			if(GetWindowThreadProcessId(SA, &ProcessID))			{				g_Process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID);			}		}	}}template <class Type> Cheat<Type>::~Cheat(){	if(g_Process)	{		CloseHandle(g_Process);	}}template <class Type> int Cheat<Type>::ModifyProcess(Type* Val, Type* PreVal = NULL){	if(g_Process)	{		if(PreVal) ReadProcessMemory(g_Process, m_Addr, PreVal, NULL);				if(WriteProcessMemory(g_Process, m_Addr, Val, m_Size, NULL))		{			return 1;		}		}	return 0;}template <class Type> int Cheat<Type>::EnableCheat(bool SavePre = false){	if(SavePre)	{		return ModifyProcess(m_Value, m_PreVal);	}	return ModifyProcess(m_Value);}template <class Type> int Cheat<Type>::DisableCheat(){	return ModifyProcess(m_PreVal);}