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

cs_Yaourth 6 Messages postés mardi 1 novembre 2005Date d'inscription 1 novembre 2005 Dernière intervention - 1 nov. 2005 à 10:38 - Dernière réponse : cs_Yaourth 6 Messages postés mardi 1 novembre 2005Date d'inscription 1 novembre 2005 Dernière intervention
- 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 !!!
Afficher la suite 

10 réponses

cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 1 nov. 2005 à 11:43
+3
Utile
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/
Cette réponse vous a-t-elle aidé ?  
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 1 nov. 2005 à 13:06
+3
Utile
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]
Cette réponse vous a-t-elle aidé ?  
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 1 nov. 2005 à 10:45
0
Utile
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/
cs_Yaourth 6 Messages postés mardi 1 novembre 2005Date d'inscription 1 novembre 2005 Dernière intervention - 1 nov. 2005 à 11:37
0
Utile
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.
cs_Yaourth 6 Messages postés mardi 1 novembre 2005Date d'inscription 1 novembre 2005 Dernière intervention - 1 nov. 2005 à 11:50
0
Utile
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 !!
cs_Yaourth 6 Messages postés mardi 1 novembre 2005Date d'inscription 1 novembre 2005 Dernière intervention - 1 nov. 2005 à 12:06
0
Utile
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 ?
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 1 nov. 2005 à 12:29
0
Utile
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]
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 1 nov. 2005 à 12:31
0
Utile
ps : GetCursorPos te renvoie la position du curseur par rapport à l'écran ;)

Private Type POINTAPI
X As Long
Y As Long
End Type
cs_Yaourth 6 Messages postés mardi 1 novembre 2005Date d'inscription 1 novembre 2005 Dernière intervention - 1 nov. 2005 à 12:53
0
Utile
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 ?
cs_Yaourth 6 Messages postés mardi 1 novembre 2005Date d'inscription 1 novembre 2005 Dernière intervention - 1 nov. 2005 à 13:23
0
Utile
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 !! :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.