Forcer la position du pointeur de souris [Résolu]

Signaler
Messages postés
6
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
1 novembre 2005
-
Messages postés
6
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
1 novembre 2005
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
102
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 111 internautes nous ont dit merci ce mois-ci

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 111 internautes nous ont dit merci ce mois-ci

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
102
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/
Messages postés
6
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
1 novembre 2005

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.
Messages postés
6
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
1 novembre 2005

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 !!
Messages postés
6
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
1 novembre 2005

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 ?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
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]
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
ps : GetCursorPos te renvoie la position du curseur par rapport à l'écran ;)

Private Type POINTAPI
X As Long
Y As Long
End Type
Messages postés
6
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
1 novembre 2005

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 ?
Messages postés
6
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
1 novembre 2005

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