SendKeys crtl droit [Résolu]

- - Dernière réponse :  SSelim - 2 oct. 2012 à 16:36
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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
3
Merci
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+

Merci bigfish_le vrai 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de bigfish_le vrai
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
0
Merci
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 ?
Commenter la réponse de SSelim
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
0
Merci
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
Commenter la réponse de SSelim
0
Merci
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 {~})
Commenter la réponse de SSelim
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
0
Merci
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
Commenter la réponse de SSelim
0
Merci
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 ?
Commenter la réponse de SSelim

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.