Forcer la position du pointeur de souris

Résolu
cs_Yaourth Messages postés 6 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 1 novembre 2005 - 1 nov. 2005 à 10:38
cs_Yaourth Messages postés 6 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 1 novembre 2005 - 1 nov. 2005 à 13:23
Bonjour !

bon, voila, je suis en train de coder une toute petit appli pour un ami qui est kiné non-voyant.
Il utilise le programme de son hopital pour suivre ses consultations mais sa synthèse vocale ne reconnait pas certains boutons pour passer d'un module à l'autre, ce qui le rend dépendant d'une autre personne.

La solution la plus simple (à mon avis) est de lancer un petit programme avec une liste déroulante contenant la liste des boutons à atteindre et d'envoyer le curseur de souris à l'endroit qui va bien en fonction du choix (la synthèse vocale reconnait le contenu du combobox).

Mon soucis, c'est que si j'arrive à récupérer la position du curseur dans des variables, je ne parviens pas à forcer la position du curseur à un endroit prédéfini.

Ca me parait pas compliqué à faire sauf que je ne sais pas sur quel contrôle agir...

Quelqu'un peut me filer un coup de main pour ce petit truc tout bête ? J'ai beau fouiller dans toute ma doc, je ne trouve nulle part un moyen d'envoyer ce fichu pointeur où je veux...


Merci !!!

10 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 nov. 2005 à 11:43
tu l'appelle comme une fonction normale :



SetCursorPos 100, 100



Ce code te place le curseur de souris à la position 100 x 100 à l'écran, c'est aussi compliqué que cà ;)



Il faut pas croire que les fonctions de l'API Windows sont compliquées ;)

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 nov. 2005 à 13:06
http://www.vbfrance.com/code.aspx?ID=34236
Byref .....
c'est pas sûr que l'erreur vienne de l'API

[VB6]
si c'est sur une Form :

Option Explicit
'
Private Type POINTAPI
X As Long
Y As Long
End Type
'
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'
'
'
Private Sub Command1_Click()
Dim MousePos As POINTAPI
Call GetCursorPos(MousePos)
MsgBox "la souris est (forcément sur le bouton) en coordonnées..." & vbCrLf & _
vbCrLf & "X : " & MousePos.X & vbCrLf & "Y : " & MousePos.Y
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


la différence si c'est un module, c'est uniquement de remplacer les Private par Public
(donc pas besoin de re-déclarer sur la Form)
++
PCPT [AFCK]
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 nov. 2005 à 10:45
Utilise la fonction de l'API Windows SetCurposPos, elle te permet de
définir la position du curseur sur l'écran (à utiliser en parallèle
avec GetCursorPos pour récupèrer la position du curseur).

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
cs_Yaourth Messages postés 6 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 1 novembre 2005
1 nov. 2005 à 11:37
Aie, j'ai jamais touché aux API... va falloir s'y mettre.

J'ai donc récupéré ça dans l'API Viewver :

Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

Ca fonctionne comment ?
Je colle ça à quel endroit dans mon code ?
Comment je fais pour passer une valeur sur x et y ?


désolé, j'ai aucune doc là dessus et je suis un peu perdu.
0

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

Posez votre question
cs_Yaourth Messages postés 6 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 1 novembre 2005
1 nov. 2005 à 11:50
en effet !!

:-)

bon ben voila, ça fait quatre heures que je rame comme un malade et c'est pas plus compliqué que ça.

Tous mes remerciements pour les tuyaux et cette aide rapide et efficace ! bonne journée à toi !!
0
cs_Yaourth Messages postés 6 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 1 novembre 2005
1 nov. 2005 à 12:06
Tiens, par contre, j'arrive pas à piger GetCursorPos :

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

VB me jette sur une erreur de type non défini (apparemment, c'est POINTAPI qui va pas). Je m'attendais à une fonction qui me renvoit X et Y en Long mais là, il me semble que y a un truc à faire avant...
lpPoint est bien une variable ?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 nov. 2005 à 12:29
salut
pointapi est à déclarer avant

pour plus d'infos sur la souris, tu peux jeter un oeil sur LES VACANCES DE MR MULOT [TUTORIAL]
++
PCPT [AFCK]
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 nov. 2005 à 12:31
ps : GetCursorPos te renvoie la position du curseur par rapport à l'écran ;)

Private Type POINTAPI
X As Long
Y As Long
End Type
0
cs_Yaourth Messages postés 6 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 1 novembre 2005
1 nov. 2005 à 12:53
pcpt : il est sur ce site le tutorial ? je ne le trouve pas... (décidément...)

par contre, quand je déclare POINTAPI en LONG, j'ai un ByRef Mismatch Error si je veux l'afficher dans une texte box. C'est normal ?
0
cs_Yaourth Messages postés 6 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 1 novembre 2005
1 nov. 2005 à 13:23
Ok, en fait l'erreur venait de l'appel de GetCursorPos par Call.

Mon problème est résolu !!

merci à tous !! c'est vraiment sympa !! :)
0
Rejoignez-nous