Curseur en haut avec SetCursorPos

Résolu
Utilisateur anonyme - 6 mai 2005 à 21:37
 Utilisateur anonyme - 7 mai 2005 à 23:58
Bonsoir,

J'ai lu les divers posts sur ce sujet mais je n'ai rien trouvé.

Je veux faire un petit programme qui clic automatiquement à un endroit de l'écran.

Je mets 500 pour x et 500 pour y : la souris est au milieu mais tout en haut de l'écran
Je mets 1000 pour x et 1000 pour y : la souris est tout à gauche mais tout en haut de l'écran.



Private
Sub Command1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Command1.Click

Dim x
As
Long, y
As
Long
x =
CLng(txt1.Text)
y =
CLng(txt2.Text)
SetCursorPos(x, y)
mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, x, y, 0, 0)

End
Sub

Je suis en 1024x768

Si quelqu'un sait pourquoi, la souris reste toujours tout en haut de l'écran.

Merci

7 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
7 mai 2005 à 23:44
c'est en .net !
pas étonnant
c'est pas du Long que tu dois mettre mais de l'Integer

Daniel
3
Utilisateur anonyme
6 mai 2005 à 21:38
Je mets 1000 pour x et 1000 pour y : la souris est tout à gauche mais tout en haut de l'écran.

Je me suis trompé c'est tout à droite et pas à gauche
0
NicoSoftt Messages postés 106 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 28 octobre 2005
7 mai 2005 à 21:59
Salut


Imaginons que le bouton s'appelle com.left



SetCursorPos (Me.Left / 15) + (com.Left / 15) + com.Width / 30, (Me.Top / 15) + (com.Top / 15) + com.Height / 30 + options ' + 20 + 20



options : - si la barre des taches (avec le titre de l'appli ,
le -, la x pour fermer, etc...) (propriété Showtaskbar=true) est
affichée il faut ajouter un nombre comme 20 peut être un peu plus ca
dépend de son épaisseur, s'il ya des menus ou il faut encore ajouter 20
peut être un peu moins



en règle général il faut ajouter l'épaisseur donnés par l'application divisé par 15

j'ai eu ce nombre par Screen.height/768 et Screen.width/1024 et ca donne 15 CQFD

espérant que ce ne soit pas trop incompréhensible
Voila
N$
0
Utilisateur anonyme
7 mai 2005 à 22:12
Bonsoir

Merci pour la réponse

En fait, je veux pas cliquer dans l'application mais à un endroit sur l'écran.

J'utilise VB de Visual Studio

Merci
0

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

Posez votre question
NicoSoftt Messages postés 106 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 28 octobre 2005
7 mai 2005 à 22:17
Salut



Moi aussi (pour VB)



mais cela ne change rien pourvu que tu saches le .Left, .Top, de cet endroit sur l'écran



tu rentres :

SetCursorPos objet.Left/15, objet.top/15


il ne te restes plus qu' a cliquer ce que tu sais faire grace a mouse_event il

mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)



... ?

N$
0
Utilisateur anonyme
7 mai 2005 à 23:01
Je dois être embêtant. mais je ne comprend pas. Je te donne plus d'infos car sinon je n'y arriverai pas

dowsform : Form1
2 texbox : txt1 et txt2
1 bouton : cmdclic

Je mets x est la valeur de txt1 et y est la valeur de txt2.

Sur clic du bouton, j'ai mis :



Dim x, y
As
Long
x = txt1.Text
y = txt2.Text
SetCursorPos(x, y)

mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

Resultat : le programme ne s'occupe pas de y. Si je change sa valeur, rien ne se passe. Le clic est toujours tout en haut. Par contre, si je change le x là, le clic change de place mais toujours en haut.

Je m'excuse de t'embêter

Merci
0
Utilisateur anonyme
7 mai 2005 à 23:58
Merci Gobillot
0
Rejoignez-nous