Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DÉPLACER LA SOURIS, SIMULER CLICK (VIA API)


Information sur la source

Catégorie :Système Source .NET ( DotNet ) Classé sous : souris, clavier, mouvement Niveau : Initié Date de création : 23/09/2005 Vu : 18 942

Note :
7 / 10 - par 4 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description

Bonjour,

ce bout de code permet de:
- manipuler la souris avec le clavier (8 pour aller en haut, 2 pour aller en bas, 4 pour aller à gauche, 6 pour aller a droite
- simuler un click (touche 5)

Il utilise l'api user32 de windows

Attention, votre formulaire doit etre vide car la facon car les évenements de "keypress" sont gérés par le formulaire.
Enfin, si ca ne marche pas direct, cliquez sur votre formulaire pour lui donner le focus (avec la souris par contre !!)

Enfin, n'oubliez pas de mettre "Imports System.Runtime.InteropServices" au tout début du code !
 

Source

  • 'structure pour récupérer la pos de la souris à partir de l'api
  • Public Structure POINTAPI
  • Dim x As Int32
  • Dim y As Int32
  • End Structure
  • 'importe de l'api la fonction pour bouger la souris
  • <DllImport("user32")> Shared Function SetCursorPos(ByVal x As Integer, ByVal y As Integer) As Integer
  • ' Nothing required in here
  • End Function
  • 'importe de l'api la fonction connaitre la position de la souris
  • <DllImport("user32")> Public Shared Function GetCursorPos(ByRef lpPoint As POINTAPI) As Integer
  • End Function
  • 'importe de l'api la fonction simuler un click
  • <DllImport("user32")> Public Shared Sub mouse_event(ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
  • End Sub
  • 'si touche pressée
  • Private Sub Form_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
  • 'recup la position de la souris
  • Dim CursorPos As POINTAPI
  • Me.GetCursorPos(CursorPos)
  • Debug.WriteLine("Position souris: " & CursorPos.x & " - " & CursorPos.y)
  • 'en fonction de la touche appuyée
  • Select Case Asc(e.KeyChar)
  • Case 50 'bas
  • Me.SetCursorPos(CursorPos.x, CursorPos.y + 10)
  • Case 52 'gauche
  • Me.SetCursorPos(CursorPos.x - 10, CursorPos.y)
  • Case 54 'droite
  • Me.SetCursorPos(CursorPos.x + 10, CursorPos.y)
  • Case 56 'haut
  • Me.SetCursorPos(CursorPos.x, CursorPos.y - 10)
  • Case 53 'milieu (click)
  • Me.mouse_event(&H2, 0&, 0&, 0, 0)
  • Me.mouse_event(&H4, 0&, 0&, 0, 0)
  • End Select
  • End Sub
  • 'evenement déclenché quand on clique sur le formulaire
  • Private Sub Form_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
  • MsgBox("ta cliqué !!!")
  • End Sub
    'structure pour récupérer la pos de la souris à partir de l'api
    Public Structure POINTAPI
        Dim x As Int32
        Dim y As Int32
    End Structure

    'importe de l'api la fonction pour bouger la souris
    <DllImport("user32")> Shared Function SetCursorPos(ByVal x As Integer, ByVal y As Integer) As Integer
        ' Nothing required in here 
    End Function

    'importe de l'api la fonction connaitre la position de la souris
    <DllImport("user32")> Public Shared Function GetCursorPos(ByRef lpPoint As POINTAPI) As Integer

    End Function

    'importe de l'api la fonction simuler un click
    <DllImport("user32")> Public Shared Sub mouse_event(ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

    End Sub

    'si touche pressée
    Private Sub Form_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
        'recup la position de la souris
        Dim CursorPos As POINTAPI
        Me.GetCursorPos(CursorPos)
        Debug.WriteLine("Position souris: " & CursorPos.x & " - " & CursorPos.y)
        'en fonction de la touche appuyée
        Select Case Asc(e.KeyChar)
            Case 50 'bas
                Me.SetCursorPos(CursorPos.x, CursorPos.y + 10)
            Case 52 'gauche
                Me.SetCursorPos(CursorPos.x - 10, CursorPos.y)
            Case 54 'droite
                Me.SetCursorPos(CursorPos.x + 10, CursorPos.y)
            Case 56 'haut
                Me.SetCursorPos(CursorPos.x, CursorPos.y - 10)
            Case 53 'milieu (click)
                Me.mouse_event(&H2, 0&, 0&, 0, 0)
                Me.mouse_event(&H4, 0&, 0&, 0, 0)
        End Select
    End Sub

    'evenement déclenché quand on clique sur le formulaire
    Private Sub Form_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
        MsgBox("ta cliqué !!!")
    End Sub

Commentaires et avis

signaler à un administrateur
Commentaire de cboulas le 23/09/2005 22:56:15

Salut pour éviter d'être obliger de cliquer sur le formulaire pour diriger la souris, tu peux ajouter à ton code un forçage du focus sur celui-ci : me.SetFocus

signaler à un administrateur
Commentaire de cboulas le 23/09/2005 22:59:38

Oupss en Dot net, c'est : me.focus() ou mybase.focus()
désoler

signaler à un administrateur
Commentaire de olixelle le 23/09/2005 23:41:10

oui exact, c ce que j'ai fait juste après avoir publié le code :)

signaler à un administrateur
Commentaire de CCJ le 25/09/2005 01:12:52

oui c tres bien comme code mais y en a deja pas mal(rnfin en vb.net je sui pas sur)

signaler à un administrateur
Commentaire de MoTUmBo le 22/03/2006 17:13:48

Est ce que c'est possible de modifier le code pour que la fenêtre n'enlève pas le focus de windows

par exemple je voudrais faire déplacer la souris,
cliquer sur le menu démarrer et sélectionner un item.

pour l'instant je clique sur le menu démarrer, mais il se ferme aussitôt,
car mon application reprend le focus aussitôt quelle le perd pour continuer
à traiter les évènements
merci beaucoup

signaler à un administrateur
Commentaire de bdgta le 13/05/2006 17:55:56

je voudrais savoir comment lancer la procedure de clic dans la form avec un timer

merci

signaler à un administrateur
Commentaire de ratala le 23/05/2006 22:25:58

Est-ce que ce serait possible de dectecter si un bouton de la souris est enfoncé ?

signaler à un administrateur
Commentaire de olixelle le 23/05/2006 23:50:20

oui, tu peux le faire avec l'evenement click ou mousemove (chéplu) de l'objet form

signaler à un administrateur
Commentaire de ratala le 24/05/2006 12:33:49

mouai mais sa bloque la fenetre, enfin ya pas une api pour ça ?

signaler à un administrateur
Commentaire de jyle3d le 13/12/2006 12:02:35

Bonjour,

Je ne sais pas si votre problème est toujours d'actualité mais je vous conseille de regarder du coté du Hooking ou de lire ce très bon tutoriel.

Pour info, mouse_event est une fonction dépréciée qui a été remplacée par SendInput(...)

Bonne prog

++

Yann


signaler à un administrateur
Commentaire de jyle3d le 13/12/2006 12:03:22

lol

Avec le lien cela vous aidera surement plus

;-)

http://www.codeproject.com/useritems/simpleautoclicker.asp

signaler à un administrateur
Commentaire de jihednond le 02/09/2008 19:17:34

c cool man bon travaille !!

peut tu taper des touche du clavier automatiquement avec vb

a l'aide de API jihedbond@gmail.com

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

detecter mouvement souris et touche clavier [ par ALDOlivier ] Hello,Comment capturer la position de la souris en vb 2005????Et aussi détecter l'utilisation du clavier?Mais pas que dans une FORM!ps: pour faire une Bloquer le clavier et la souris [ par Flyer ] Personne n'a une idée comment bloquer le clavier et la souris ?Que lorsqu'on appuye dessus, il ne se passe rien.Merci Clavier er souris remarque [ par robapt ] Salut ,je voudrait savoir si c'&#233;tait possible de bloquer que le clavier ou que la souris parce que je n'ai pas trouv&#233; de source sur le site ne pas faire lager souris - hook clavier/souris [ par Children ] Bonjours, j'ai actuellement un hook souris/clavier, le seul problème est que je traite pas mal d'information en même temps, et même en utilisant un th detecter un mouvement de la souris hors de la form [ par adnotlegland ] Bon ben question r&#233;currente on dirais mais je voulais juste m'en assurais :je souhaite detecter un evenement hors de la forme (en l'occurence un Interruption Clavier / Souris [ par yohann2004 ] Bonjour Je voudrais créer une application qui intercepterait toutes les interruptions clavier et souris même si l'application est en tache de fond (o Sendmessage bloque clavier et souris [ par trainkill ] Bonjour,J'ai un petit soucis avec une application que je developpe en vb.net. Celle-ci appelle une appli externe quie st en fait un &#233;cran de logi Comment limiter les mouvement de la souris dans un rayon quelconque?? [ par franki3 ] Bonjour,Je refait un message sur cette question en oubliant les contrendu entre moi et mon frere.Bon je cherche un code qui servirait a empecher ma so mouvement picturebox pas fluide [ par Finality ] Bonjour tout le monde,dans le programme que je suis en train de dévelloppé j'aurais besoin de faire bouger une picture box a l'aide d'une souris. Pour inactivite clavier et souris [ par micky22 ] Bonjour,Je souhaite minimiser une application apres que personne n ait touche au clavier et a la souris pendant 10 min. Ce doit etre permanent ainsi j


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.