SendKeys crtl droit [Résolu]

Signaler
-
 SSelim -
Bonjour dans le cadre d'un projet je suis amené à passer d'Exel 2010 vers une autre application afin de rapatrier des données.
Je pilote cette autre application à l'aide de la fonction SendKeys. Or dans cette application il y a une différenciation entre la touche ctrl droit et ctrl gauche. La touche ctrl de Sendkeys utilise le ctrl gauche et c'est malheureusement de la touche droite dont j'ai besoin. Jusqu'à présent je n'ai rien trouvé sur le net me permettant de résoudre ce problème.

Merci

10 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

peut être avec l'API : SendInput

Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long


que l'on peut utiliser avec les 2 constantes suivante pour différencier les touches Ctrl de droit et de gauche

Private Const VK_RCONTROL As Long = &HA3
Private Const VK_LCONTROL As Long = &HA2


Pour plus d'info sur l'API vas voir ICI


A+
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
226
Bonjour,
J'ai beau faire et refaire, regarder et re-regarder :
Chez moi, la touche contrôle à gauche et celle à droite de mon clavier ont exactement la même valeur (17)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Sur l'aaplication que je doit piloter les deux touches n'ont pas la même fonction.
N'y aurrait-il pas une autre solution pour envoyer la commande ctrl gauche ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
226
Je ne vois pas ce que tu veux dire (relis-moi), sauf si ton clavier (lui-même) a été "reconfiguré" !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
226
Es-tu bien certain de parler de la touche CTRL et non d'une autre ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
J'ai bien saisi ce que tu as écrit.
Mais le fait est que quand j'appuie sur ctrl droit et ctrl gauche dans l'application que je dois piloter (application programmer sous teemtalk) l'action n'est pas la même.
Pour donner plus d'information (si ça peut aider), je pilote l'application en basculant d'Excel vers cette application à l'aide de l'API findWindows ce qui fait que c'est cette application qui devient active et qui reçoit l'ordre d'Excel
Il est possible que l'application elle-même ait été programmé d'une manière bizarre (dans le même style la touche entrée du clavier et celle du clavier numérique n'ont pas la même fonction).
Dans ce cas à défaut d'utiliser les sendkeys, est-il possible d'utiliser une autre fonction, je suis ouvert a toute proposition.
Au passage, merci de tes réponses rapides
c'est bien la touche CTRL que j'ai besoin d'utiliser
Au passage, si c'est pas trop demander y'a t-il une solution pour diffé"rencier les deux touche entrée (j'aurais besoin de celle du clavier numérique alors que le sendkeys renvoie celui qui clavier classqiue que ce soit avec {ENTER} ou {~})
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
226
Désolé, mais je ne vois pas.
Que tu utilise SendKeys ou les fonctions SendInput ou keybd_event de l'Api de Windows, ce sera le code 17 qui sera concerné et envoyé.
Si, maintenant, l'appli externe est en Directx (que je connais mal), tu risques de toutes façons de ne pas pouvoir la "piloter" de cette manière depuis VB6.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Mille merci bigfish.
J'ai mis un peu de temps a trouver comment programmer le SendInput mais au final ca mache au poil.

Pour ceux que ca intéresse, faut se reporter au derier exemple de cette page :
http://allapi.mentalis.org/apilist/4B981623F1261B6355ECC0E82C15C5C6.html
Par contre un autre problème est apparu.
Avant de passer sur l'autre application, je copie une chaine de 11 caractère (1 lettre et 10 chifres) du fichier excel. En utilisant la fonction SendInput lorsque je copie ces caractères dans l'autre application, le premier caractère de la chaine (la lettre) se retrouve a la fin.
Est-ce du à cette fonction ?