Sendkey dans un jeux video (autre application)

Résolu
skyzo410 Messages postés 25 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 28 octobre 2009 - 21 oct. 2009 à 11:08
skyzo410 Messages postés 25 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 28 octobre 2009 - 28 oct. 2009 à 17:29
Bonjour,

Je souhaite utiliser sendkey pour un jeux video.

J'ai une boite sur laquelle se trouve 30 boutons.
J'arrive à faire reconnaitre les 30 boutons et y associer une touche clavier mais lorsque je je lance le jeux et que j'actionne un bouton, l'action n'a pas lieu (pourtant sur dans un fichier texte oui).

J'ai vu ceci :

A///////

<DllImport("user32.dll", SetLastError:=True)> Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
End Function

<DllImport("user32.dll", SetLastError:=True)> Private Shared Function SetForegroundWindow(ByVal hWnd As IntPtr) As Boolean

End Function

B//////



Dim theHandle as IntPtr
theHandle = FindWindow( <<<< ICI je voudrais que ce soit mon jeux LOCKON.EXE merci de m'indiquer la syntaxe.
if theHandle <> IntPtr.Zero then
SetForegroundWindow(theHandle)
SendKeys.Send("{ENTER}")
end if

31 réponses

skyzo410 Messages postés 25 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 28 octobre 2009
22 oct. 2009 à 12:03
Je comprends pas bien son code. Je ne vois pas comment tu cible la fenetre de mon jeux précisement.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 oct. 2009 à 12:06
te faut faire un FindWindow de ta fenetre

te donnera son handle que tu utilisera pour cibler ton action


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
skyzo410 Messages postés 25 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 28 octobre 2009
22 oct. 2009 à 12:06
Ce que je fais je test ca dans les prochains jours car je ne peux pas tester maintenant (pas chez moi). Je te tiens au jus. En tout cas UN GRAND MERCI pour ton aide car c'est pas facile.

Merci encore et je te tiendrais informé.
0
skyzo410 Messages postés 25 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 28 octobre 2009
22 oct. 2009 à 12:07
Tu peux me donner un bout de code pour ce findwindow et le send key (je 'avoue que j'avais deja orienté mes recherches sur ce code ?

Merci par avance
0

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

Posez votre question
skyzo410 Messages postés 25 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 28 octobre 2009
22 oct. 2009 à 12:10
Je te laisse je dois partir en rdv. Je Si tu as deux sec pour me pondre un bout de code avec find windows
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 oct. 2009 à 12:15
msdn:

http://msdn.microsoft.com/en-us/library/ms633499(VS.85).aspx

suffit donc de faire:

hGameWnd = FindWindow(vbnullstring, "Lock On: Air Combat")

en mettant en place le titre de la fenetre de ton jeu

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
skyzo410 Messages postés 25 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 28 octobre 2009
23 oct. 2009 à 00:29
Salut,

J'arrive bien a prendre la main sur la fenetre :


...code...
hGameWnd = FindWindow(vbnullstring, "LOCK ON")
Call PostMessage(hWnd, WM_CLOSE, 0, 0) <<< Ca me ferme la fenetre de mon jeux uniquement (je suis ok)
...code...

Par contre

...code...
hGameWnd = FindWindow(vbnullstring, "LOCK ON")
SendKeys ("e")
...code...

Ne fonctionne pas.

Je commence a etre dépassé la. Je veux pas te forcer à m'aider.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 oct. 2009 à 06:43
pas Sendkeys !!!

SendKeysEX (ma version, qui permet de spécifier le hWnd de la fenetre a qui envovyer les touches)

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
skyzo410 Messages postés 25 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 28 octobre 2009
23 oct. 2009 à 16:51
Ok et du coup c'est quoi la syntaxe de ce sendKeysEx ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 oct. 2009 à 17:00
"possible peut etre aussi de cibler le SendKeys : tu semble avoir le hWnd de la fenetre du jeu :

http://www.vbfrance.com/codes/SENDKEYSEX-SIMULER-TOUCHE-DANS-FENETRE-PRECISE_41974.aspx "

je vois pas trop quoi donner comme précisions...

SendKeysEx(ByVal vhTargetWnd As Long, ByVal veKey As VBRUN.KeyCodeConstants)


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
skyzo410 Messages postés 25 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 28 octobre 2009
23 oct. 2009 à 22:51
Rien a faire meme apres cet essai :

Private Sub Form_Load()
Dim KeyCode As Integer
Dim Shift As Integer
Me.Show
mhNotepadWnd = FindWindow("LOCK ON", vbNullString)
mhNotepadWnd = GetWindow(mhNotepadWnd, GW_CHILD)

SendKeysEx mhNotepadWnd, vbKeyS
'OU
SendString mhNotepadWnd, "s"
End Sub
0
Rejoignez-nous