Fórum [Dúvida] Como escrever na memória o valor de um edit? #484865

08/07/2014

0

Fala galera, tudo bem?

Bom, tô mexendo na memória dos programas, porém surgiu uma dúvida: Como escrever na memória o valor de um edit?

Eu gostaria que ele pegasse esse valor pra colocar num timer e dar "freeze" nele, mas eu não consigo. Na hora de escrever o valor, o delphi dá erro: " '3330616529' is not a valid integer value."

No caso, o número "3330616529" varia de acordo com o momento. Eu gostaria de, por exemplo, se o valor for "3330616529", freezá-lo, do mesmo jeito se ele for "42412456623", sacam?

Esse é o código:

begin
OpenProcess(PROCESS_ALL_ACCESS, False, PID);
address:= $6C316C;
Offset:= $0;
Offset2:= $654;
Valor:= strtoint(edit6.Text);
ReadProcessMemory(HandleX, pointer(address), @address2, 4, buffer);
ReadProcessMemory(HandleX, pointer(address2 + Offset), @address2, 4, buffer);
WriteProcessMemory(HandleX, pointer(address2 + Offset2), @valor, 4, buffer);
end;

Ler o valor eu consigo normalmente, o problema é na hora de escrever.

Alguém tem alguma dica? Espero que tenha dado pra entender.

Obrigado.
Emanuel Amorim

Emanuel Amorim

Responder

Post mais votado

08/07/2014

o delphi dá erro: " '3330616529' is not a valid integer value."


Olá amigo, nunca tentei desenvolver nada desse tipo, mas de cara já é possível dizer que essa mensagem é porque você está ultrapassando o limite do tipo Integer que varia na faixa de -2147483648 .... 2147483647.

Dê uma olhada nos tipos e seus respectivos limites na documentação embarcadero..

William

William
Responder

Gostei + 2

Mais Posts

08/07/2014

Emanuel Amorim

Huum. Depois de um tempo já usando delphi, não sabia que existia valores máximos lol valeu aí, resolveu, foi só, ao invés de ler a memória em 4 bytes, lê-la em Byte. Obrigado =D
Responder

Gostei + 0

11/07/2014

Guilherme

O tipo Cardinal ou DWORD (4 bytes, ou seja de 0...(4*1024*1024*1024)-1)=4294967295 pode resolver esta faixa que está utilizando. int64 é de 8 bytes.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar