Page 1 sur 1

[..] Reprendre une valeur de la mémoire ?

Posté : dim. 21 sept. 2008 12:15
par bouh2
Bonjour,

Voilà je programme en AutoIt depuis quelques temps (2 semaines environ) et je cherche désespérément à reprendre une valeur qui est dans la mémoire d'un programme. J'ai essayer avec l'include Memory.au3 et ReadMemory mais je ne vois pas vraiment comment marche la fonction.

En gros pour être clair :

J'ai un programme de lancer (ex : Le jeu pinball Windows) et j'aimerais reprendre la valeur des score par la mémoire.
Je sais que la valeur est à l'adresse 04EFD383 elle est de type 4 bytes. Comment je fait maintenant pour l'afficher dans une messagebox avec mon code autoit ?

Sinon j'ai aussi ce code :
► Afficher le texte
Que j'ai dénicher mais à vrai dire je ne vois pas comment il fonctionne :'(

Donc si quelqu'un pourrait m'aider ce serait sympa =)


Merci d'avance :)

Re: [..] Problème : reprendre une valeur de la mémoire ?

Posté : dim. 21 sept. 2008 13:43
par timmalos
Pas testé, mais je pense que ca marche comme ca:

$IV_ADDRESS = "04EFD383"

$b = _MEMORYOPEN($IV_PID, $IV_DESIREDACCESS = 2035711, $IV_INHERITHANDLE = 1)
_MEMORYREAD($IV_ADDRESS, $b, $SV_TYPE = "dword")



$IV_PID, le PID du programme qui est entrain de tourner et dont tu veux recuperer une donnée dans la memoire. (dans ton exemple, pinball), que tu peux avoir avec WinGetHandle.
La seule chose dont je n'ai aucune idée est le $SV_TYPE, mais essaye comme ca on sait jamais :)

Re: [..] Problème : reprendre une valeur de la mémoire ?

Posté : dim. 21 sept. 2008 13:48
par bouh2
Merci je vais essayer tout de suite, le $SV_TYPE doit être le type de valeur soit ici 4 bytes. Bon je vais tester

J'ai test et quand je veux afficher la valeur de $b il me retourne toujours 0 :/

C'est peut être une erreur d'adresse : /

Re: [..] Reprendre une valeur de la mémoire ?

Posté : dim. 21 sept. 2008 21:17
par Tlem
Je ne connais pas particulièrement cette fonction, mais à première vue il vous faut d'abord utiliser _MEMORYOPEN pour ouvrir la zone mémoire à lire, puis utiliser _MEMORYREAD pour en lire la valeur.

Pour utiliser _MEMORYOPEN il vous faut le PID du programme en question et le type d'accès que vous voulez faire (L'aide de l'UDF Memory.au3 vous sera nécessaire) et seulement après vous pourrez lire la valeur de l'adresse mémoire ($AH_HANDLE doit probablement faire référence à la valeur de retour de _MEMORYOPEN).

Bon script. ;)

Re: [..] Reprendre une valeur de la mémoire ?

Posté : dim. 21 sept. 2008 22:47
par sylvanie