begin process at 2012 02 16 16:36:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Périphériques

 > 

[Hook] Faire un simple click


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[Hook] Faire un simple click

vendredi 12 mai 2006 à 02:59:32 | [Hook] Faire un simple click

Lucyberad

Membre Club
Bonjour.

j'aimerais faire un clik a la sourie, c pour ca que j'ai fais des recherche et je suis tombé sur un truc qui s'appelle hook qui utilise la user32.dll

j'ai donc fais ce code:

           
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Enabled = True
    End Sub

    Dim I As Integer = 100

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        I = I - 1
        Label1.Text = I / 10
        If (I = 0) Then
            Dim Dwflags As Long = &H2
            Dim situation_sourie As Point
            Form1.GetCursorPos(situation_sourie)
            Dim dx As Long = situation_sourie.X
            Dim dy As Long = situation_sourie.Y
            Console.WriteLine(dx & " - " & dy)      'm'a servi a voir que GetCursorPos fonctionne
            mouse_event(Dwflags, dx, dy, 0, 0)
        End If
    End Sub

    <Runtime.InteropServices.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

    <Runtime.InteropServices.DllImport("user32")> Public Shared Function GetCursorPos(ByRef lpPoint As Point) As Integer
    End Function

infos: on appui sur le bouton1 et celui lance un timer qui compte 10sec. au bout des 10 secondes, il execute le mouse_event. Ces 10 secondes me permmete de placer au préalable ma sourie a l'endroit ou je veut que ca clique.

Alors j'ai test le GetCursorPos et ca fonctionne, par contre le mouse_event merde et fais cette erreur:
PInvokeStackImbalance a été détecté
Message: Un appel à la fonction PInvoke 'New_Project1!
New_Project1.Form1::mouse_event' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.

alors deja que j'ai eu du mal a comprendre comment on fait le code, mais la c le pompom je comprend rien a ce que le debugger veut me dire. en esperant que vous saurez mieux que moi !


L U C Y I3 E R @ D


vendredi 12 mai 2006 à 08:09:18 | Re : [Hook] Faire un simple click

eldim

Bonjour,

(toujours pas de tuto ?)
à mon avis tu bouge la souris sur la couche du frameworks au lieu de la bouger au niveau driver...

-- Pourquoi faire simple quand on peut faire compliquer --
vendredi 12 mai 2006 à 09:31:46 | Re : [Hook] Faire un simple click

Lucyberad

Membre Club
merci de ta reponse eldim
alors  le tuto => ca avance et meme bien
sinon la je doit faire ce programme, mais il  me fo juste ca pour le faire.

alors voila, pourrait tu m'expliquer comment tu fait? (bouger la sourie avec le framework)


L U C Y I3 E R @ D


vendredi 12 mai 2006 à 09:42:11 | Re : [Hook] Faire un simple click
vendredi 12 mai 2006 à 11:32:59 | Re : [Hook] Faire un simple click

Lucyberad

Membre Club
lol j'ai bien sur vu cette source et je m'en suis inspiré et regarde bien, c'est exactement la meme chose (a part les dx, dy qui eux fonctionne). Je me suis inspiré de cette source pour faire le code ci-dessus et il marche pas !


L U C Y I3 E R @ D


vendredi 12 mai 2006 à 11:53:29 | Re : [Hook] Faire un simple click

eldim

ok excuse
j'ai pas pris le temps de regarder... j'ai juste vu les notes...

à vrai dire j'en sais rien...
essai en déclarant les API sans <Runtime.InteropServices.DllImport("user32")>

je regarderai cette aprem si g le temps

-- Pourquoi faire simple quand on peut faire compliquer --
vendredi 12 mai 2006 à 11:55:39 | Re : [Hook] Faire un simple click

Lucyberad

Membre Club
Bon je vien de faire encore des recherches et j'ai trouvé que en fait il faut mettre ce code ci pour le mouse event:
            mouse_event(&H2, 0, 0, 1, 0)
            mouse_event(&H4, 0, 0, 1, 0)
1 pour l'appui l'autre pour le reclacher.
voila.
sinon le message ca me le fait toujours, mais c'est visiblement qu'une message informatif (qui fait quand meme titiller le debugger).
donc quand je alnce mon appli directement sans le debugger ca marche.


L U C Y I3 E R @ D


vendredi 12 mai 2006 à 12:07:07 | Re : [Hook] Faire un simple click

eldim

ok
c'est une détection automatique car ça ne passe pas par le driver sans doute...

-- Pourquoi faire simple quand on peut faire compliquer --
vendredi 12 mai 2006 à 18:55:43 | Re : [Hook] Faire un simple click

Lucyberad

Membre Club
ha ok !

ben tu sait comment on lui dit de faire un breakpoint inversé? (si tu comprend t fort)
allez quelque explication: u breakpoint stop sur la commande, ben l'inverse c'est qu'il fait la commande sans appliquer le debugger.

ca la c chiant pour faire des test chuis obliger de lancer l'exe.


L U C Y I3 E R @ D


dimanche 30 décembre 2007 à 01:23:56 | Re : [Hook] Faire un simple click

PWM63

Membre Club
19 mois plus tard, Stéphane a la même erreur que Lucyberad, et, dans un élan de générosité extrême, livre une solution.

Pour que l'exception PInvokeStackImbalance ne soit pas levée pendant le débogage,
et étant donné que même l'instruction Try ne permet pas d'éviter le message d'erreur,
il ne reste plus que cette solution :

Cliquer sur la commande Exceptions... du menu Déboguer ou appuyer sur Ctrl+Alt+E
Développer la liste Managed Debugging Assistants
Décocher la case Levé du nom PInvokeStackImbalance

Stéphane

1 2

Cette discussion est classée dans : long, end, mouse, event, sourie


Répondre à ce message

Sujets en rapport avec ce message

Clic automatique [ par firehc ] Comment faire cliquer la souris automatiquement ?j'ai essayé : Call mouse_event(MOUVEEVENF_MOUSE_DOWN, 0, 0, 0, 0)Call mouse_event(MOUVEEVENF_MOUSE_UP click automatique [ par firehc ] Bonjour,J'aimerais faire un click automatique, j'ai essayé :Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Convertir un WMF en EMF [ par daveCrocket ] Bonjour à tous,j'ai récupérer ce source pour transformer un wmf en emf, mais je ne sais pas comment je dois l'utiliser. Pouvez-vous m'aider ?********* Bug ou pas Bug [ par Meskine ] Bonjours;y-t-il une personne qui a rencontré ce genre de bugSUB TEST() dim x as long x=32767+2END SUBle message suivant apparait : "ERROR ??? depaceme assistant feuille de données et msg d'erreur [ par gplog ] Mr_toto Salut, J'y connait rien en base de donnée alors j'ai créer avec l'assitant une feuille de données. ça fonctionne tres bien, les donné aide en vb6 [ par soleildz ] peux tu m'aider?merci d'avance.voila une partie d'un module.Public Function FiltresD(ByVal Comb As String, ListesD As ListBox, N As Long) As Boolean MOUSE EVENT & GETPIXEL [ par levyfranck ] Bonjour,J'ai un problème avec les instructions mouseevent (pour cliquer seulement) et getpixel: Je ne peux pas utiliser ces fonctions en dehors de mo Problème avec le port série [ par swatch72 ] Bonjour,Je sois récupérer des informations météo depuis un capteur sur le port série. J'utilise un module (SerialPort.bas) pour effectuer les requetes hook clavier pour remplacer un caractere par un autre [ par juju62611 ] j'ai mis en place dans mon doce vb un hook sur le clavierafin de remplacer A par Ble probleme est que je ne sais pas comment annuler le Aj'ai donc AB


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,655 sec (4)

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