Simuler touche sur un programme

Signaler
Messages postés
3
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
19 avril 2011
-
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013
-
Bonjours,

J'aimerais simuler une suite de touche de clavier sur un programme en appuyant moi meme sur une touche (exemple : en appuyant sur F5, une suite de touche se fasse sur tel programme)

Dans mon cas, j'aimerais créer un trainer pour un jeu, je lance mon programme, je lance le jeu et lorsque j'appuis sur la touche 'F5' en jeu une suite de touche se fasse sur le jeu (pour activer un code)
[b]
PS :/b je suis debutant dans la programmation, merci de bien detaillé
(desolé pour les fautes d'orthographes ^^)

2 réponses

Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
Bonjour,

Tu as bien fait de dire ce que tu voulais faire, j'en déduis que tu n'as qu'un code entré en dur (écrit), sinon il faudrait utiliser un fichier en général.

Pour faire ce que tu veux faire on demande le code à écrire, on ne le tape pas en simulant des appuis (après c'est à toi de voir), alors je te propose ce code :

' form1 jeu
Option Explicit On
Public Class Form1
  Dim leCode As Integer = 1234
  Dim saisie As Integer = 0
  Dim primoEntree As Boolean = False

  Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Me.Text = " Jeu"
  End Sub

  Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
    If primoEntree = True Then Exit Sub
    primoEntree = True
    Call saisieCode()
  End Sub

  Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    If AscW(e.KeyCode) <> 49 Then Exit Sub ' 49 = F2
    If leCode = saisie Then Exit Sub
    Call saisieCode()
  End Sub

  Sub saisieCode()
    Dim r As String = InputBox("Saisissez votre code ?  ")
    Try
      saisie = Val(r)
    Catch ex As Exception
      GoTo fin
    End Try
    If saisie = leCode Then
      Call debutDuJeu()
      Exit Sub
    End If
fin:
    MsgBox("Code invalide  " & vbLf & vbLf & "Resaisir le code = touche <F2>  ", vbExclamation)
  End Sub

  Sub debutDuJeu()
    MsgBox("Début du jeu", vbInformation)
  End Sub
End Class


Cordialement.

Joe.
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013

EhJoe, je crois bien que tu es à cent lieu de se qu'il faut.
Il ne s'agit pas de créer un jeu avec une boîte de dialogue avant pour saisir une touche.
Bon, passons à plus intéressent...

Pour un programmeur débutant, cela va être plus que difficile.
Pour le principe,
1 - on crée un lien entre notre programme et le gestionnaire de clavier de Windows pour lui dire que, même si notre application n'est pas active, on veux que les touches passe par le notre avant d'être envoyé à l'application active. C'est le Hook.
par exemple : http://www.vbfrance.com/codes/HOOKER-CLAVIER-TOUS_8334.aspx
2 - on regarde si c'est une touche qui nous intéresse. Sinon, on laisse Windows poursuivre son processus normal d'envoi de messages aux autres applications.
3 - Si on veux modifier cette touche, on arrête la chaine de message (le jeu ne recevra pas la touche)
4 - en récupérant l'identificateur du processus propre au jeu, on envoi nous-même des messages d'appui de touche au jeu.

C'est peut-être pas très clair, mais la technique à employé n'est pas de l'ordre d'un débutant.