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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
bouh2
Niveau 1
Niveau 1
Messages : 2
Enregistré le : dim. 21 sept. 2008 12:01
Status : Hors ligne

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

#1

Message 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 :)
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#2

Message 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 :)
bouh2
Niveau 1
Niveau 1
Messages : 2
Enregistré le : dim. 21 sept. 2008 12:01
Status : Hors ligne

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

#3

Message 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 : /
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#4

Message 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. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

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

#5

Message par sylvanie »

Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre