cs_micam
Messages postés18Date d'inscriptiondimanche 16 novembre 2003StatutMembreDernière intervention15 juin 2009
-
15 févr. 2008 à 15:59
cs_micam
Messages postés18Date d'inscriptiondimanche 16 novembre 2003StatutMembreDernière intervention15 juin 2009
-
21 févr. 2008 à 14:49
Bonjour à tous,
J'ai passé un long moment à parcourir le site et ses tutos sans résultat satisfaisant, alors voici ma question.
Outil
C# sous VS2005
Objectif
J'aimerais pourvoir, depuis mon application C# qui tourne en fond, arriver à manipuler le focus(notepad par exemple) sachant que le focus peut être n'importe qu'elle application. Autrement dit je ne peux pas connaitre à l'avance l'application qui peut avoir le focus. Plus précisément, j'aimerais manipuler le curseur du focus. Je parle bien sur du curseur de saisie pas du curseur de la souris. Le but étant de pouvoir ajouter des caractères depuis sa position,de le déplacer ou encore d'effectuer des actions avec.
Situation
A l'heure actuelle je récupère facilement le handle du processus qui à le focus.
Question
Comment puis-je manipuler le curseur si cela est possible?
Ou sinon, comment puis-je intégrer le focus comme s'il s'agissait d'un objet de mon application, si cela est possible?
cs_micam
Messages postés18Date d'inscriptiondimanche 16 novembre 2003StatutMembreDernière intervention15 juin 2009 15 févr. 2008 à 16:22
Ou au moins, comment puis je connaitre la position de mon curseur?
nb: le curseur de saisie s'apparente peut-être à un pointeur sur le handler utilisé par le focus, toujours est-il que je ne vois pas comment l'approcher.
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 15 févr. 2008 à 18:05
>> Plus précisément, j'aimerais manipuler le curseur du focus. Je parle
bien sur du curseur de saisie pas du curseur de la souris. Le but étant
de pouvoir ajouter des caractères depuis sa position,de le déplacer ou
encore d'effectuer des actions avec.
Donc si j'ai bien compris, ce que tu cherches à faire c'est simuler dans ton application ce que pourrait faire l'utilisateur avec son clavier (taper du texte, déplacer le curseur de saisie, etc). Si c'est bien ça, alors tu peux utiliser la méthode SendWait qui te permet justement d'envoyer à l'application qui à le focus un message simulant une saisie clavier (tu peux t'inspirer d'une source que j'avais faite pour montrer l'utilisation de SendWait : ici)
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 15 févr. 2008 à 19:32
Salut, pour manipuler le curseur de texte ( le caret ) du notepad par exemple, c'est pas seulement le handle de sa fenêtre principale dont tu as besoin mais aussi du handle de sa zone d'édition. Utilise FindWindowEx, PostMessage, EM_SCROLLCARET et EM_GETSEL pour obtenir la position du caret etc..