Bonjour messieurs z'et dames !
Mon objectif est de créer une application permettant, sans afficher de form, d'envoyer du texte dans l'application courante. Dans le principe où nous sommes dans un champ de texte de cette application de premier plan (chat, navigateur, champ de texte, ...), le texte sera écrit/collé.
Une problématique supplémentaire est que le texte doit supporter l'UNICODE. Et j'ajoute une contrainte qui m'a causé quelques difficultés (on ne s'y attendrait pourtant pas) : l'utilisateur de cette application n'aura pas forcément un clavier QWERTY.
J'ai tout d'abord essayé une solution à base de SendMessage(), mais cette fonction semble envoyer uniquement des touches de clavier et non des caractères... Ce qui limite fortement les possibilités d'Unicode.
Ensuite, j'ai trouvé mon bonheur théorique avec SendKeys.SendWait(), tout fonctionne au poil, sauf que l'API simule pour certains caractères la frappe au clavier... Sur un clavier QWERTY. Inutile de dire que si nous avons un autre modèle de clavier, le résultat sera quelque peu aléatoire. J'avais ouvert un thread à ce sujet que vous pouvez retrouver ici.
Bref, je n'ai pas vraiment de contrainte d'architecture ou de langage, pour des raisons pratiques et d'interface je me suis tourné vers le couple C#/WPF en utilisant le Framework 4. Si ce n'est pas possible avec ces technologies, je peux envisager une autre solution... Peut-être mixer plusieurs langages également.
Bref, je n'ai pas vraiment d'idée sur comment m'en sortir pour arriver à mes fins. Il semble compliqué de communiquer entre applications, et surtout d'envoyer une chaîne unicode dans l'application focus afin de l'écrire dans un champ de texte...
En espérant que vous pourrez m'aider
Bonne journée à vous !
Partager