API mouse_event

Résolu
jullouyot_46 Messages postés 43 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 11 octobre 2013 - 24 avril 2009 à 14:14
jullouyot_46 Messages postés 43 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 11 octobre 2013 - 27 avril 2009 à 15:14
Bonjour,
J'utilise l'API MOUSE_EVENT pour simuler des clics souris. Pour le clic gauche et droit, pas de soucis. J'utilise ce code:
    Const MOUSEEVENTF_ABSOLUTE = &H8000
    Const MOUSEEVENTF_LEFTDOWN =
&H2
    Const MOUSEEVENTF_LEFTUP = &H4
    Const MOUSEEVENTF_WHEEL
= &H800
    Const WHEEL_DELTA = 120

    Call
mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left,
Me.Top, 0,
0) '
    Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left,

Me.Top, 0, 0)

Par contre, lorsqu'il s'agit de simuler la molette, là, rien à faire: ça ne marche pas !
Voici mon code:

    Const MOUSEEVENTF_ABSOLUTE = &H8000
    Const MOUSEEVENTF_WHEEL =
&H800
    Const WHEEL_DELTA = 120

    Call
mouse_event(MOUSEEVENTF_WHEEL + MOUSEEVENTF_ABSOLUTE, Me.Left,
Me.Top,
WHEEL_DELTA, 0)

Quelqu'un a-t-il une idée ? D'avance merci !!!

PS: je bosse sur VB 2008 Express sur Vista, Framework 3.5

Julien

9 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 avril 2009 à 14:59
il est inconcevable de jouer avec des choses si aléatoires pour piloter une page web...

selon ce que tu souhaites faire au final, il y a plusieurs facons de faire les choses...

mais s'il s'agit de piloter IE pour te logguer à ta place,
te suffit de faire un:

With WebBrowser1.document
.getElementsByID("login").Value = "mon_nom"
.getElementsByID("password").Value = "mon_pass"
.getElementsByID("form_auth").submit
End With

enfin, c'est à adapter, bien sur ^^

www.vbfrance.com/codes/PILOTER-INTERNET-EXPLORER-OU-WEBBROWSER-REPONSE-FORUM_25669.aspx

que souhaites tu faire, au final ?
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 avril 2009 à 14:39
tu peux très certainement te passer de cette API.
tentes plutot un PostMessage WM_MOUSEWHEEL

mais la solution n'est pas forcément bonne.

il y a bien d'autres moyen plus pro, plus propres pour piloter... laisse moi deviner....
une page web ?
0
jullouyot_46 Messages postés 43 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 11 octobre 2013
24 avril 2009 à 14:54
Merci pour cette réponse rapide !

Le but est de s'authentifier automatiquement sur une page web, en effet.
Mais si tu as d'autres pistes, je suis preneur...

Julien
0
jullouyot_46 Messages postés 43 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 11 octobre 2013
24 avril 2009 à 15:04
Merci
tu m'as mis sur la piste. C'est ce que je cherche à faire, "tout simplement".
Je n'avais pas encore exploré cette partie de VB...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jullouyot_46 Messages postés 43 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 11 octobre 2013
24 avril 2009 à 15:58
Après quelques recherches, il semble que le controle webbrowser soit à inclure dans mon formulaire !

Saurais tu par hasard récupérer l'instance IE ou firefox ouverte, ou suis-je obligé d'inclure le contrôle webbrowser dans mon formulaire ?

Si c'est la 2e option, cela ne m'arrange pas beaucoup ...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 avril 2009 à 16:06
Set shell = CreateObject("Shell.Application")
For Each oWebBrowser in Shell.Windows
If oWebBrowser.LocationURL = "..." Then
oWebBrowser.document.getElement...
End If
Next oWebBrowser
0
jullouyot_46 Messages postés 43 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 11 octobre 2013
27 avril 2009 à 15:01
De mon coté, il ne comprend pas l'instruction...
il me bloque, et m'affiche l'exception

L'exception System.InvalidCastException n'a pas été gérée
  Message="Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type de classe 'System.Windows.Forms.WebBrowser'. Les instances de types qui représentent des composants COM ne peuvent pas être castées en types différents représentant des composants COM ; toutefois, elles peuvent être castées en interfaces tant que le composant COM sous-jacent prend en charge les appels QueryInterface pour l'IID de l'interface."
 
voilà...

si quelqu'un comprend ce charabia ...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 avril 2009 à 15:12
c'est pas du .NET que je t'ai pas filé, dsl ^^
0
jullouyot_46 Messages postés 43 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 11 octobre 2013
27 avril 2009 à 15:14
Pas grave !!

je suis en train de parcourir le msdn... y a pas grand chose... ou alors je cherche  mal !!!
0
Rejoignez-nous