begin process at 2012 02 13 11:44:42
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

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

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


 Information sur la source

Note :
7,33 / 10 - par 6 personnes
7,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

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

Auteur : olixelle

Ecrire un message privé
Site perso
Commentaire sur cette source (16)
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



 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) MSN MESSENGER
Source avec Zip Source avec une capture Source .NET (Dotnet) RECHERCHE DE PAROLES DE CHANSONS
Source avec Zip Source .NET (Dotnet) CREER SON MSN AVEC DOTMSN
Source avec Zip Source avec une capture Source .NET (Dotnet) PICTUREBOX "INTELLIGENT" (DU MOINS PLUS QUE CELUI LIVRÉ EN S...
Source .NET (Dotnet) CONVERTIR ENTITÉS HTML EN CARACTÈRE

 Sources de la même categorie

Source avec Zip Source avec une capture AUTORISER/REFUSER L'EXECUTION DE PROCESSUS par pierreh51
Source avec Zip Source .NET (Dotnet) CLONE/FORK DES FLUX DE LA CONSOLE : PERMETTRE LA REDIRECTION... par ShareVB
Source avec Zip Source .NET (Dotnet) DÉFRAGMENTER UN FICHIER par ShareVB
Source avec Zip Source .NET (Dotnet) ECRAN DE VEILLE : DÉTECTER LE LANCEMENT/DÉCLENCHER/EMPÊCHER par ShareVB
Source avec Zip Source avec une capture DESACTIVER / ACTIVER LES MISES EN VEILLES PC par Arsena

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture DÉMON D'ÉCOUTE par 8Tnerolf8
Source avec Zip Source .NET (Dotnet) DÉTECTION DE L'ACTIVITÉ DU CURSEUR DE LA SOURIS par spria
Source avec Zip Source avec une capture AGITATOR - MACRO UNIVERSELLE par exode42
Source avec Zip Source avec une capture NICEKEYS HOOK SENDKEYS AUTOMATION CLAVIER (AVEC TOUCHE WINDO... par ym_trainz
Source avec Zip Source .NET (Dotnet) DÉPLACER LA SOURIS PAR CLAVIER par hdpn

Commentaires et avis

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

Commentaire de cboulas le 23/09/2005 22:59:38

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

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 :)

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)

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

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

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é ?

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

Commentaire de ratala le 24/05/2006 12:33:49

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

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


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

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

Commentaire de werdDomain le 22/11/2009 06:26:33

très bien le code ^^
je pourrais te conseiller d'utiliser un "Low Level Keybord Hook" pour savoir quelle touche a été enfoncé sans avoir besoin d'avoir un focus sur un contrôle de ton form.
En effet, il vas déclenché un évènement peut importe sur quelle fenêtre ou contrôle le focus est.

voici un lien d'un exemple très complet ^^

http://www.vbfrance.com/codes/HOOK-PB-COMPATIBILITE-NET_38415.aspx

je donne un 10/10 pour la pertinence de ton code.
Bonne continuation.

Commentaire de werdDomain le 22/11/2009 06:29:26 10/10

javais juste oublié de voté.Comme il faut laisser un commentaire, le voici :) 10/10!!

Commentaire de plutonium2222 le 12/09/2011 19:18:28 6/10

Il y as mieux c'est sur, mais niveau explication du codage...Pas super...

Commentaire de werdDomain le 13/09/2011 05:44:31

Oui c vrais... Il avais oublier de commenter ce bout de code:

                Me.mouse_event(&H2, 0&, 0&, 0, 0)
                Me.mouse_event(&H4, 0&, 0&, 0, 0)
Sa envoie le click ... Donc &H2 = DownClick et &H4 = UpClick ...

 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 detection clavier souris [ par raymond45 ] Bonjour, Existe t-il en VB6 un évenement qui se declenche lors d' un appui sur une touche (n' importe laquelle) ou quand on bouge la souris. Comm comment emuler un clavier a l'aide d'une souris!!! [ par oussamad00 ] slut a tous!!!!!!!! genre: deplacer ma souris comme si j'appuyais sur les fleche si vous voyez ce que je veux dire. bloquer le clavier et le souris [ par kinggnl ] comment je peut acceder a un poste de mon reseau est bloquer le clavier et le souris dans le VB.net ? 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,310 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales