Ir ao conteúdo
  • Cadastre-se

Manipulação de programas em execução


Ir à solução Resolvido por arthurhoch,

Posts recomendados

Oi,

Pretendo fazer um auto pot para um RPG, só para treinar a lógica de programação.

 

O que eu quero é apostilas ou "how tos" de como fazer isso em c++, pesquisei no google só achei pra VB. Não quero resposta pronta porque se me derem a o "programa" pronto não vou aprender nada...

 

Eu tenho a seguinte situação, eu quero ler o valor do HP (vida) de um personagem, se esse valor estiver abaixo de uma quantia x ou porcentagem x, ai quero enviar um sinal para o programa precionar um tecla qualquer de 1 até 9.

 

O que eu não sei fazer:

1- Ler o valor da memoria que eu encontrei com o cheat engine com um programa em c++, Ex. tenho o Address 15CF4718, quero ler o valor contino nessa "variavel?" com o progrma em c++... Assim saber o valor do HP....

2- Mandar o sinal de precionamento da tecla para o progrma (jogo), funcionando se o tal estiver minimizado...

 

Quero fazer isso como um desafio pra mim, ainda estou no 1º semestre da facul, portanto só sei a lógica...

 

Desde já obrigado.

Link para o comentário
Compartilhar em outros sites

1- Ler o valor da memoria que eu encontrei com o cheat engine com um programa em c++, Ex. tenho o Address 15CF4718, quero ler o valor contino nessa "variavel?" com o progrma em c++... Assim saber o valor do HP....

 

Isto se chama Memory Hack. No seu caso, você pode utilizar WinAPI(Windows.h). Segue abaixo o link de um ótimo tutorial a respeito.

2- Mandar o sinal de precionamento da tecla para o progrma (jogo), funcionando se o tal estiver minimizado...

 

Bom, dê uma olhada nesta função

 

 

Boa sorte. Abraços.

Link para o comentário
Compartilhar em outros sites

  • Solução
#include <iostream>#include <windows.h>#include <conio.h>#include <stdlib.h>//FindWindow();//GetWindowThreadProcessId();//OpenProcess();//WriteProcessMemory();***//CloseHandle();using namespace std;int main(){		//Variaveis para teste.	int HP = 0,HPMAX = 0;		//Acha a janela Obs: Mude para o nome da janela ou modifique o valor.	HWND hWnd = FindWindow(0, "12345"); 		//Verificar se a janela existe.	if (hWnd == 0){				//Caso não existir				cerr << "Janela não encontrada" << endl;	} else{		DWORD pId;		GetWindowThreadProcessId(hWnd, &pId);		HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pId);		if (!hProc){			cerr << "Processo não aberto" << endl;		}else{						//Existindo...			        	ReadProcessMemory(hProc,(void*)0x16E57430,&HP,sizeof(HP),0);        	        	        	//Faz um teste se o endereço é valido.        	if (HP > 0){            	clog << "Funcionando..." << endl;        	} else{            	cerr << "Erro" << endl;        	}        	        	//Loop infinito para tomar os pots ...        	for (;{            	ReadProcessMemory(hProc,(void*)0x16E57430,&HP,sizeof(HP),0);            	ReadProcessMemory(hProc,(void*)0x16E57478,&HPMAX,sizeof(HPMAX),0);            	if (HP < (50*HPMAX)/100 ){                	cerr << "HP baixo: "  << endl;                    	keybd_event(0x71,0,0,0);                    	Sleep(2000);            	}				if (HP == HPMAX ){                	cerr<< "HP alto: " << HPMAX << endl;            	}            	Sleep(500);        	}				}        CloseHandle(hProc);    }}

Funciona, mas tenho que dar umas melhoradas, valeu ai cara.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!