Mouse

Résolu
fdouieb Messages postés 264 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 12 juin 2013 - 4 juin 2006 à 20:21
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 6 juin 2006 à 11:49
Bonjour,

Je travaille actuellement sur un projet de type VNC. L'appli doit fonctionner
uniquement en réseau interne.

Dans un premier temps je souhaite positionner la sourie sur le bouton
"démarrer' de Windows et simuler le click.

Mon pb est doubles. En effet, la propriété "Mouseposition" est en
lecture uniquement et par conséquent je ne peux pas positionner la sourie au
dessus du bouton "démarrer". De plus, si je trouve une méthode pour
positionner la sourie au dessus du bouton comment faire pour simuler le click?


Merci de vos réponses.


PS: si vous avec des adresse Internet ou il est possible de trouver du code sur
un équivalent VNC en c# je suis preneur.


A+

6 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
4 juin 2006 à 21:13
Salut,
La question avait déjà été posée et coq y avait répondu. Voici ce qu'il proposait (tu peux retrouver le topic de ce sujet ici) :

#region API: methodes

[DllImport("user32.dll")]
privatestaticexternint SendInput(
int nInputs,
ref INPUT pInputs,
int cbSize
);

[DllImport("user32.dll")]
privatestaticextern IntPtr GetMessageExtraInfo();

#endregion

#region API: constantes

privateconstuint INPUT_MOUSE = 0;
privateconstuint MOUSEEVENTF_LEFTDOWN = 0x0002;
privateconstuint MOUSEEVENTF_LEFTUP = 0x0004;

#endregion

#region API: structures

[StructLayout(LayoutKind.Explicit)]
privatestruct INPUT
{
[FieldOffset(0)]
publicuint type;
[FieldOffset(4)]
public MOUSEINPUT mi;
}

privatestruct MOUSEINPUT
{
publicint dx;
publicint dy;
publicuint mouseData;
publicuint dwFlags;
publicuint time;
public IntPtr dwExtraInfo;
}

#endregion

Exemple d'utilisation (ça fait un clic sur mon menu démarrer, wahou :p) :
 Cursor.Position = new Point(10, 1010);
// clic
INPUT input = new INPUT();
input.type = INPUT_MOUSE;
input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
SendInput(1, ref input, Marshal.SizeOf(input));
input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(1, ref input, Marshal.SizeOf(input));

<hr size="2" /> VC# forever
=13319
3
fdouieb Messages postés 264 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 12 juin 2013 3
4 juin 2006 à 21:31
Merci Bidou
0
fdouieb Messages postés 264 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 12 juin 2013 3
5 juin 2006 à 18:11
Si je peux me permette Bidou.


Actuellement l'utilisation da la sourie fonctionne très bien
et je peux ouvrir fermer l'ensemble des applications a distance. Il y a un
petit soucie au niveau de l'écriture je m'explique. J'ouvre un document Word. Lorsque
je tape sur le clavier "TOTO", je n'est pas de problème pour récupérer
les touches enfoncer. Mais comment je fais pour dire a l'ordinateur distant d'écrire
"TOTO".


Comme toujours si tu as une idée je prend si non est ce que tu as des link


Merci d'avance pour ton aimable collaboration


PS: Je pense que mettrai le programme une fois fini sur le site.
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
6 juin 2006 à 10:15
Salut, tu peux simuler l'appuie d'une touche du clavier avec SendInput comme dans l'exemple précédent, ou avec la classe managée SendKeys + la fonction win32 SetForegroundWindow ou si tu préfère cibler une fenêtre particlière FindWindow + PostMessage.
0

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

Posez votre question
fdouieb Messages postés 264 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 12 juin 2013 3
6 juin 2006 à 11:40
Je rencontre de + en + la fonction "SendInput". Il me semble qu'elle a un potentiel enorme. Est ce que vous avez des link ou de la doc sur cette fonction
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
6 juin 2006 à 11:49
C'est normal elle remplace keybd_event et mouse_event.

MSDN : >> SendInput <<
0
Rejoignez-nous