Sendkeys dans une application à l'intérieur d'une form

Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015 - 12 mars 2011 à 02:28
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 17 mars 2011 à 13:38
Bonjour,

J'ai un activeX à l'intérieur d'une form. Comment puis-je utiliser la commande Sendkeys pour envoyer une commande à mon ActiveX?

Merci.

Philippe

11 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 mars 2011 à 02:51
Bonjour,

Pourquoi utiliser SendKeys dans ce cas, il y a pas d'autres méthodes dispo avec ce composant ?

Mon site
0
Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015
12 mars 2011 à 04:00
Bonjour,

Non, il ne semble pas y avoir d'autre méthode : même dans le menu déroulant, la commande est inaccessible (mais il s'agit peut-être d'un bogue).
Pour ceux qui connaissent, l'activeX utilisé est eDrawings de Dassault système.

Merci.

Philippe
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 mars 2011 à 13:47
Bonjour,

Je ne connais pas cet ActiveX,
Il y a peut être SendMessage qui peut t'aider, mais à voir.
Si tu as seulement le SendKeys, il faut donner le focus à ce contrôle, et à son conteneur, avant de l'utiliser.

Mon site
0
Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015
12 mars 2011 à 19:45
Bonjour,

Merci pour le tuyau : j'avais déjà pensé donnée le focus au contrôle mais qu'en est-il du conteneur? De quoi s'agit-il exactement et comment s'y prend-on?

Merci.

Philippe
0

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

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 mars 2011 à 19:51
Bonjour,

Le conteneur c'est ta form.

Mon site
0
Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015
12 mars 2011 à 20:13
Bonjour,

J'avais donc bien compris l'explication.
J'ai donc donné donné le focus à mon ActiveX avec la commande "Focus" et l'événement "GotFocus" mais on dirait qu'il tourne en boucle : suite à la ligne "sendkeys.send("e"), il ne passe à la ligne suivante que lorsque je fait ctl+alt+del.


Philippe
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 mars 2011 à 20:25
Bonjour,

Tu peux montrer ton code ?
Cela semble étonnant.

Mon site
0
Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015
12 mars 2011 à 21:02
Private Sub cmdExplode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExplode.Click



Me.AxEModelViewControl1.Focus()


End Sub

Private Sub AxEModelViewControl1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles AxEModelViewControl1.GotFocus

SendKeys.Send("e")


End Sub

J'ai donc un simple bouton qui attrape l'événement de focus, qui est alors transféré vers l'événement "gotfocus".
J'ai essayé avec une form simple (un bouton et un textbox), je clique le bouton pour tenter de faire inscrire quelque chose dans le textbox et j'ai la même boucle. Le problème ne sembe donc pas venir de l'activeX mais bien d'une erreur dans le code.

Philippe
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
13 mars 2011 à 00:37
Bonjour,

J'ai testé avec VB.NET 2005 Pro, avec une TextBox et un Button, Le button donnant le focus à la TextBox et l'event GotFocus de la TextBox générant un SendKeys.
Je n'ai constaté aucuns pb.
à chaque appui sur le bouton, ce que j'ai mis dans le sendkeys s'affiche dans la textbox, sans aucun blocage quelconque.

Mon site
0
Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015
17 mars 2011 à 02:41
À ce que je peux lire sur d'autres site, Sendkeys ne serait pas la méthode la plus appropriée. Ce serait plutôt un handle, puis PostMessage(hwnd, WM_KEYDOWN, &H45, 1), qui renverrait la touche "e" à l'activeX.
Comment puis-je accéder au handle, sachant qu'il s'agit toujours d'une application activeX à l'intérieur d'une form?

Merci.

Philippe
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
17 mars 2011 à 13:38
Bonjour,

Je crois que hwnd est la propriété Handle du contrôle, à vérifier (je me teompe peut être entre ActvioeX et .NET..


Mon site
0
Rejoignez-nous