Combinaison de touche par rapport a un handle

Maypeur Messages postés 5 Date d'inscription lundi 1 octobre 2007 Statut Membre Dernière intervention 16 janvier 2008 - 2 oct. 2007 à 21:56
Maypeur Messages postés 5 Date d'inscription lundi 1 octobre 2007 Statut Membre Dernière intervention 16 janvier 2008 - 3 oct. 2007 à 21:02
Bonsoir !
Je cherche a envoyer une combinaison de touche ( alt+p, tab ...) a une fenetre par rapport son handle ( le nom de la fenetre serait plus simple ! )
j'ai trouver la source http://www.vbfrance.com/codes/ENVOYER-MESSAGES-FENETRES_2042.aspx mais je ne trouve pas comment m ' en servir pour envoyer cette combinaison de touche .

merci .

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 oct. 2007 à 18:09
Salut
Avec cette source, tu as pu retrouver le handle de la fenêtre cible. C'est Ok, ça ?
Dans cette source, les messages dont il est question sont des messages d'API SendMessage. Ces messages vont influencer le comportement de la cible ou récupérer des infos. Je pense qu'il n'est pas adapté à ce que tu veux faire.
-1- Récupérer le handle (c'est Ok)
-2- Mettre cette forme au premier plan pour qu'elle ait le focus
Avec cette API
   Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Le "hwnd" représentant le handle de la forme en question
-3- Envoyer ta suite de touches
Soit avec la fonction VB nommée SendKeys, soit (plus complexe) avec l'API SendInput qui simulera des touches de clavier/souris.
Avec SendKeys :
   SendKeys "%p", True
   SendKeys "{TAB}", True

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Maypeur Messages postés 5 Date d'inscription lundi 1 octobre 2007 Statut Membre Dernière intervention 16 janvier 2008
3 oct. 2007 à 21:02
Voila ce que j'ai pu faire :

( C'est la seule solution que j'ai trouver pour pouvoir faire vibrer la manette, en allant cliquer sur le bouton de test des vibration . )

Function fermeturecle() As Integer
'AppActivate
test = Shell("rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0", vbMinimizedFocus)
SendKeys "%P", True ' Envoie des frappes de touches
SendKeys "+{TAB}", True
SendKeys "{RIGHT}", True
Sleep (200)
SendKeys "{TAB}", True
SendKeys "{TAB}", True
SendKeys "{TAB}", True
SendKeys "{TAB}", True
i = 0
Do While i < 81
SendKeys "{RIGHT}", True
i = i + 1
Loop
SendKeys "+{TAB}", True
SendKeys "+{TAB}", True
SendKeys "~", True
SendKeys "{ENTER}", True
Sleep (2100)
SendKeys "{ENTER}", True
Sleep (2100)
SendKeys "{ENTER}", True
Sleep (2100)
SendKeys "{ENTER}", True
Sleep (2100)

SendKeys "{ESC}", True
Sleep (200)
SendKeys "{ESC}", True
End Function

Merci ++
0
Rejoignez-nous