Salut, je travaille sur un petit projet qui consiste à récolter des données depuis une carte arduino et d'exécuter des commandes windows simple selon les valeurs des capteurs, pour le moment j'arrive à bouger le curseur et de simuler une combinaison de touche comme alt+F4.
Cursor.Position = new Point(Cursor.Position.X + gy[0] / acc_x, Cursor.Position.Y); // bouger le curseur
i++;
if(i>50)
{
SendKeys.Send("DOWN"); // Appuie sur le bouton bas du clavier
i=0;
}
Le souci est que par exemple ma petite application ne marche pas quand je lance un jeu vidéo ou une présentation powerpoint, donc ça veut dire que les programmes utilisent directement le pilote de la souris ou du clavier pour intéragir avec (ce que j'ai déduit), du coup est-ce que je dois approfondir mes connaissances ou il y a un moyen plus simple pour remédier à ce problème ?
"C'est un coup du sort étrange : tout les hommes dont on a ouvert le crâne avaient un cerveau" . Wittgenstein.
Salut, je travaille sur un petit projet qui consiste à récolter des données depuis une carte arduino et d'exécuter des commandes windows simple selon les valeurs des capteurs, pour le moment j'arrive à bouger le curseur et de simuler une combinaison de touche comme alt+F4.
Cursor.Position = new Point(Cursor.Position.X + gy[0] / acc_x, Cursor.Position.Y); // bouger le curseur
i++;
if(i>50)
{
SendKeys.Send("DOWN"); // Appuie sur le bouton bas du clavier
i=0;
}
Le souci est que par exemple ma petite application ne marche pas quand je lance un jeu vidéo ou une présentation powerpoint, donc ça veut dire que les programmes utilisent directement le pilote de la souris ou du clavier pour intéragir avec (ce que j'ai déduit), du coup est-ce que je dois approfondir mes connaissances ou il y a un moyen plus simple pour remédier à ce problème ?
Je pense que c'est parce que la fenêtre de ton programme n'est pas au premier plan, tu as essayé de le mettre en topmost ou autre ?
Laisses tomber, avec les jeux, c'est le genre de truc qui va tout mettre dans le décor.
@Vertinhol, les primitives que tu utilises sont très limitées, comme tu t'en rends compte.
Quand on programme, généralement, on ne passe pas par de la simulation de touche clavier mais on utilise l'API du système qui correspond à l'action voulue.
"Alt F4" n'est pas une action, fermé une fenêtre est une action :
Merci pour vos réponses ça m'a bien aidé, est-ce que vous pouvez m'expliquer comment je peux créer un eventhandler car la fonction Timer n'est pas assez rapide.
"C'est un coup du sort étrange : tout les hommes dont on a ouvert le crâne avaient un cerveau" . Wittgenstein.
Il y a de chance que l'usage d'un simple timer ne suffise pas.
C'est quoi la finalité de votre machin ?
je veux collecter des données de ma carte arduino et les afficher sous forme de courbe, j'ai réussi à supprimer la fonction Timer en créant une classe qui reboucle tant que je n'ai pas appuyé sur le bouton
Il y a de chance que l'usage d'un simple timer ne suffise pas.
C'est quoi la finalité de votre machin ?
je veux collecter des données de ma carte arduino et les afficher sous forme de courbe, j'ai réussi à supprimer la fonction Timer en créant une classe qui reboucle tant que je n'ai pas appuyé sur le bouton
Il y a de chance que l'usage d'un simple timer ne suffise pas.
C'est quoi la finalité de votre machin ?
je veux collecter des données de ma carte arduino et les afficher sous forme de courbe, j'ai réussi à supprimer la fonction Timer en créant une classe qui reboucle tant que je n'ai pas appuyé sur le bouton
Les threads est une solution logique, mais je trouve le PO un peu "tendre" pour ça.
Le "problème" à résoudre ne me parait pas nécessiter de ces "rocket sciences".
C'est de l'affichage de données simple non ?
Votre arduino, il balance les informations sur un port série/COM ou un port USB mappé sur un port COM, non ?
Il suffit de lire ces informations comme depuis un fichier car l'OS se charge de la bufferisation.
De la lecture non bloquante et régulière sur ce fichier mappant le port COM et le tour est joué, tout à fait intégrable dans une boucle de message classique Windows, sans thread.
S'il faut "demander" à l'arduino les informations, mais qu'une dérive de quelques millisecondes n'est pas un problème, ce qui très généralement le cas, l'usage de la boucle à message reste largement plus simple.
Mais je ne ne vois pas le lien avec le sujet initial.
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
Mouse & Keyboard simulation
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.