krokro6
Messages postés66Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention28 juin 2007
-
9 juin 2006 à 23:13
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 2014
-
10 juin 2006 à 17:31
Salut à tous, j'aurais besoin d'aide pour récupérer l'id d'un controle
d'un autre programme car je n'y arrive vraiment pas, même avec le spy ++, j'arrive à trouver la fenêtre mais ca
n'affiche pas son id.
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201415 10 juin 2006 à 15:29
Salut,
krokro6 >> Certains controles peuvent ne pas avoir d'ID car ils sont créés pendant l'exécution du programme. Pour envoyer du texte à un controle, tu peux utiliser directement son HWND. Pour récupérer ce HWND, je te conseille d'utiliser FindWindowEx():
// Pour retrouver le premier EDIT contenu dans la fenêtre:
HWND conrole=FindWindowEx(hwndparent,0,"EDIT",0);
// Pour retrouver le suivant:
controle=FindWindowEx(hwndparent,controle,"EDIT",0);
Tu peux répéter cette dernière ligne jusqu'à trouver le HWND du controle voulu. Il est préférable d'utiliser une boucle do while() si le nombre d'EDITs est grand.
Pour envoyer du texte au controle, il suffit de faire:
SetWindowText(controle,'Bonjour");
krokro6
Messages postés66Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention28 juin 2007 9 juin 2006 à 23:59
Hem, ne comprends vraiment pas, comment avec :
hwnd = FindWindow(NULL,"Mon Programme");
GetWindowLong(hwnd,GWL_ID);
On va dire que sur un programme j'ai un Edit Box, sur l'edit box j'ai envie d'envoyer un texte, j'y arrive mais qu'avec les programmes ou je connais l'id des controles(avec resource hacker), mais sur les programmes où resource hacker n'affiche pas le dialogue donc pas les controles, je n'arrive pas à récupérer l'id de l'edit box.
Dans ton code, GWL_ID, c'est quoi comme controle ?.
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201415 10 juin 2006 à 17:31
vecchio56 >> Oui, CreateWindow() permet bien d'affecter un ID à un controle. Mais c'est facultatif. Dans beaucoup d'application ce paramètre n'est pas utilisé car le HWND retourné par la fonction suffit pour gérer tout ce qui touche à ce controle. Cet ID sera égal à 0. Ce qu'on peut traduire par "pas de ID". Personnellement, je n'affecte un ID à un controle qu'en cas de besoin.