Envoie de touches fictives du clavier

semenzato Messages postés 9 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 27 octobre 2003 - 15 oct. 2003 à 15:27
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 16 oct. 2003 à 17:04
Bonjour ,
je voudrais savoir comment envoyer des touches fictives du clavier à la fenetre de dialogue principale
merci

9 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 oct. 2003 à 19:49
Messages de fenetres ne seraient pas mieux ?
BruNews, ciao...
0
semenzato Messages postés 9 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 27 octobre 2003
16 oct. 2003 à 09:06
Je n'arrive pas à envoyer la touche tab par des messages de fenetre mais par contre j'essaye d'utiliser la fonction sendinput mais la structure INPUT n'est^pas reconnu alors qu'elle est bien declarer

merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 oct. 2003 à 09:22
ceci:
#define _WIN32_WINNT 0x0500
avant:
#include <windows.h>
BruNews, ciao...
0
semenzato Messages postés 9 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 27 octobre 2003
16 oct. 2003 à 11:10
Merci beaucoup pour ta réponse mais finalement j'ai abandonné l'option sendinput.

Mon but était d'appuyer fictivement sur un bouton(bouton executer du programme) d'un autre programme ecrit en Delphi.

Je dois donc recuperer l'IDcontrol du bouton concerné , je recupere donc l'HANDLE de la fenetre principale avec findwindow et c'a fonctionne bien.

Par contre quand je regarde avec Spy++ pour trouver l'ID du bouton , je remarque que celui ci change toujours et il est equivalent au handle du bouton , je ne comprend pas je croyais que le ID était fixe.

J'aimerais savoir si il est possible de recuperer l'Handle du bouton sans connaitre le ID car il s'agit de la même valeur.

Ensuite , si je reussit a avoir l'id ou le handle comment est ce que je peut lui dire de s'enclencher , est ce que je peut lui envoyer la touche "entrée" , si oui quelle est cette touche.

Je te remercie de ton aide qui est vraiment super
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 oct. 2003 à 11:23
Non pas la touche Entree mais:
PostMessage(hDest, WM_COMMAND, idbutton, (long) hButton);
Certain que hbutton == idbutton ??? Jamais vu cela.
BruNews, ciao...
0
semenzato Messages postés 9 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 27 octobre 2003
16 oct. 2003 à 12:10
Je suis sur que hbutton == idbutton.
peut etre parce que c'est une application delphi?

dans ce cas est ce qu'il est possible d'avoir directement le handle du bouton ou alors d'envoyer a la fenetre des tabulations pour en voyer le focus sur le bouton puis envoyer une touche virtuelle "entrée"

merci

petite parenthèse : est ce qu'il est possible d'appuyer sur la touche play de winamp dans un programme sachant que winamp n'est pas une application dialog
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 oct. 2003 à 12:24
Fais une enum des child de la fenetre, si tu connais le titre du bouton tu le trouveras. Voir EnumChildWindows() dans msdn.
winamp, je ne connais pas.
BruNews, ciao...
0
semenzato Messages postés 9 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 27 octobre 2003
16 oct. 2003 à 16:40
merci pour cette info , mais malheureusement encore je n'arrive pas a utiliser cette fonction , je n'arrive pas a utiliser la fonction de rappel (callback) pour pouvoir récupérer les valeurs.
de plus je ne connais pas les paramètres a rentrer dans le troisième argument .

merci encore
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 oct. 2003 à 17:04
Faut etudier MSDN et j'ai deja mis des sources faisant de l'enum, faut fouiller un peu.
szcaption est titre button recherche.
HWND hbutton = 0;

Je n'utilise pas le 2eme param dans ce cas.
BOOL CALLBACK EnumButtonsProc(HWND hwnd, LPARAM a)
{
char buff[40]; // tu vois si trop, mais multiple de 4 !
buff[0] = 0;
GetClassName(hwnd, buff, 10);
if(strcmp(buff, "BUTTON")) goto suivant;
GetWindowText(hwnd, buff, 40);
if(strcmp(buff, szcaption)) goto suivant;
hbutton = hwnd; // OK fini on sort
return 0;
suivant: return 1;
}

ICI EST LE LANCEUR
EnumChildWindows(hparent, EnumButtonsProc, 0);

BruNews, ciao...
0
Rejoignez-nous