cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 2010
-
27 juil. 2007 à 18:56
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 2010
-
28 juil. 2007 à 09:51
Salut à tous
Comment simuler un click de souris sur un bouton ? (Je veux qu'un évennement Validate d'un TextBox le déclenche)..
Le bouton est en fait un bouton ReyCommand..
J'ai fais le même travail avec un Bouton ordinaire :
' Dans le module
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const BM_SETSTATE = &HF3
' Puis..
Private Sub Text1_Validate(Cancel As Boolean)
SendMessage cmdEnvoi.hwnd, BM_SETSTATE, 1, 0
Sleep 10
SendMessage cmdEnvoi.hwnd, BM_SETSTATE, 0, 0
End Sub
Mais avec le ReyCommand (Rey_XpBasics.ocx), il parait que c'est plus compliqué car il y avait beaucoup de messages à envoyer et non pas juste BM_SETSTATE(j'ai utilisé Spy++)..
J'ai pas réussi à envoyer ces messages alors je pose cette question :
Est-ce qu'on envoyer à ce bouton "un click puis un relâchement sur la touche ESPACE" tout simplement?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 27 juil. 2007 à 22:34
umm... ouai. c'est juste le meilleur moyen de prendre de mauvaises habitudes voire de renoncer parce qu'on arrive pas à faire qqc qui en fait être simple
bref vicosta a aussi proposé une solution qui est bonne
une autre est de répérer la position du bouton en fonction de l'écran (ClientToScreen), de déplacer ta souris dessus + 10*10 (SetCursorPos), et de générer un click (mouse_event)
évidemment penser à récupérer la position de la souris AVANT (GetCursorPos) pour la repositionner ensuite
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 201019 27 juil. 2007 à 19:55
ça va plaire plus à ma petite amie
Je plaisante.. D'abord merci pour votre réponse rapide.
Je suis débutant et l'opérateur qui va travailler sur l'application que je construis l'est aussi :
Moi je veux apprendre d'avantage, un homme sage m'a dit une fois : "pour mieux apprendre, ne suis pas le chemin simple !", et l'opérateur va aimer voir le bouton surjir..
Vous n’avez pas trouvé la réponse que vous recherchez ?
vicosta
Messages postés178Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention30 novembre 2011 27 juil. 2007 à 21:32
"pour mieux apprendre, ne suis pas le chemin simple !",
pourkoi compliquer quand on peut faire simple ?
cmdEnvoi.SetFocus
SendKeys " "
S'il s'agit d'un handle d'un boutton situé dans un autre programe, il existe aussi l'API PutFocus
PS: je n'ai pas encore essaié sur un boutton ReyCommand
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 27 juil. 2007 à 22:06
salut,
çà remet toute la conception de prog en compte alors....
comment faire un if sans if? une addition sans +? lancer une fenêtre sans load ni show?
tu codes pour un résultat, pour apprendre, mais surement pas pour en mettre plein la vue à un gars "aussi bon que toi" en copiant une réponse de forum, si?
enfin ce que j'en dis....
bon courage, il va t'en falloir
ps : et faut coder uniquement avec notepad, trop facile avec l'IDE sinon ^^
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 201019 27 juil. 2007 à 22:27
Salut et merci pour les réponses,
Ce que je cherche n'est un code tout fait, j'insiste sur ce point.
Vous m'avez mal compris : je ne cherche pas à compliquer les choses, peut être j'ai donné cette impression. Mais la vérité j'ai pensé que, en choisissant la méthode compliquée, je vais apprendre plus.
Je peux tout simplement faire comme l'a dit Jack, mais comme je suis débutant, j'opte pour mon idée, car comme ça je vais utiliser les API, connaitre plus sur les messages Windows... Je préfère implémenter votre idée Jack par choix et non pas par soucie de simplicité..
Enfin, j'espère été bien expliqué et merci encore pour vos réponses
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 201019 28 juil. 2007 à 00:46
Enfin, j'ai essayé comme suit :
Private Sub txtID_KeyPress(KeyAscii As Integer)
' Si la touche pressée est ENTREE
If KeyAscii = 13 Then
' On sauvegarde la position actuelle de la souris
Dim currentPos As POINTAPI
GetCursorPos currentPos
' On déplace la souris
Dim P As POINTAPI
P.x = 0
P.y = 0
ClientToScreen cmdEnregistrer.hwnd, P
SetCursorPos P.x + 10, P.y + 10
' On simule un click de souris
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
Sleep 500
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
' Retour à la position précédente
SetCursorPos currentPos.x, currentPos.y
End If
End Sub
Tout fonctionne très bien sauf la simulation graphique d'un clique de souris..