Erreur de WinXP avec l'API mouse_event... Aidez-moi STP!

Logicson Messages postés 8 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 4 février 2005 - 29 janv. 2005 à 01:00
Logicson Messages postés 8 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 4 février 2005 - 31 janv. 2005 à 00:45
Il y a beaucoup de documentations sur ce site qui expliquent comment faire clicker ma souris avec l'API mouse_event.

'Le bouton gauche de la souris s'enfonce
Call mouse_event(MOUSEEVENTF_LEFTDOWN OR MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)
'le bouton gauche de la souris se relache
Call mouse_event(MOUSEEVENTF_LEFTUP OR MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)

Bref, ça marche dans windows 98, mais quand je l'essaye dans windows xp, le windows foque et redémarre l'ordi. Si quelqu'un pourrait m'éclaircir là-dessus, ce serait vraiment une grande aide pour moi, car je n'ai pas d'autres choix que d'utiliser winXP pour mon prog!!

Merci d'avance!



The secret to creativity is knowing how to hide your sources - Einsetein

4 réponses

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 25
29 janv. 2005 à 01:50
Pourquoi mettre call ????
Regarde mes sources! Et j'ai XP...

[g]BgB S/g
0
Logicson Messages postés 8 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 4 février 2005
29 janv. 2005 à 02:23
Hummm....
Ça se peut que le problème n'est pas le windows xp, mais MON WinXP, car je viens de checker à quelques places, pi ça à l'air que ça marche pour tlm avec xp (sauf moi ...). En tout cas, je vais checker sur un autre ordi avec XP, pi j'essayerai de règler le problème.

Tes sources son interessantes, mais malheureusement elle ne peuvent pas m'aider... merci quand-même! Mais j'aurais encore qqchose...., tu saurais tu comment capturer tous les mouseUp et mouseDown, même ceux qui sont en dehors du form, car ça j'en aurais aussi besoin dans mon projet?

P.S: Ça ne change rien de mettre call ou pas, c juste une de mes habitudes...!

The secret to creativity is knowing how to hide your sources - Einsetein
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
29 janv. 2005 à 09:12
Pour le mouve_event, cela marche très bien sous WinXP (aucun problème chez moi en tout cas !).



Pour récupèrer les événements souris, utilise la fonction de l'API
SetCapture qui permet d'intercepter les événements et les rediriger
vers la fenêtre de ton choix. Par contre, cela bloque toutes les autres
fenêtres au niveau de la souris !



Ne pas oublier de faire un ReleaseCapture lorsque tu as fini !

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
0
Logicson Messages postés 8 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 4 février 2005
31 janv. 2005 à 00:45
Hey, Merci beaucoup Dark! J'ai essayé sur un autre WinXp, pi effectivement ca marche... va falloir que j'check la congifuration de mes driver pour règler le problème.

En passant, j'ai jeté un coup d'oeil sur ton API Viewer en français.... vraiment bien fait! Les explications et les examples, c'est vraiment le comble de tout! Tu devrais demander à NIX pour qu'il le mette en évidence à quelque part sur le site, car je suis tombé dessus tout-à-fait par hazard.

Ah ouais, pi à propos du "mouse capture", je pense que je me suis mal exprimé... Ce que je veux exactement, c'est de faire un espèce de keylogger qui va enregistrer tous les clicks de souris à la milliseconde près. En fait, je veux enregistrer tous les mouseevents que je ferais pendant que je surferais sur internet, pour que je puisse ensuite les faire rejouer des milliers de fois automatiquement .

J'ai une idée comment je pourrais le faire avec SetCapture, sauf que ce serait d'une façon pas très pratique et assez compliquée. Dans le genre de:

'J'ai SetCapture en permanance sur un certain objet, pi quand j'effectue un click, il enregistre sa position en utilisant l'évent mouse_down de l'objet ; fait ReleaseCapture; utilise mouse_event pour faire clicker la souris sur la place ou j'ai clické initiallement; pi finallement, il refait SetCapture sur l'objet.

Bref, je ne suis pas sur de l'efficacité de ceci... Si t'aurais une idée comment le faire plus directement (genre lire les Windows Messages qui consernent la souris...), je serais très reconnaissant.

Merci

The secret to creativity is knowing how to hide your sources - Einsetein
0