[Arduino] Emuler des caractères qui ne sont pas gérés par l’objet « Keyboard »
Salut à tous,
Pour faire suite à la demande d'un lecteur (ZStof), qui me demandait après avoir réalisé un nombre incalculable de tentatives ... comment faire pour exploiter le caractère '\' en AZERTY ....
Attention, tous les Arduino n'émulent pas le clavier.
Dont voici le détail ...
Alors oui ... on voit qu'il n'a pas baissé facilement les bras ...
Aussi, et vu que c'est du Windows, je viens avec cette article, vous apporter une solution assez simple, exploitant le presse-papiers !
Nous irons donc utiliser la table des caractères 'charmap.exe'
Pour faire simple :
Nous allons simuler le comportement d'un utilisateur, en ouvrant cette fameuse fenêtre.
Ensuite, via quelques tabulations et en utilisant de manière intensive les flèches directionnelles nous allons nous positionner sur le caractère de notre choix, le sélectionner, puis le stocker dans le presse-papiers ... via le bouton "copier" (toujours à l'aide des tabulations)
J'ai réalisé un petit proof of concept dans un code en VBScript
Donc comme pour votre Arduino, vous devrez exécuter "charmap.exe"
Pour ouvrir le menu démarrer avec un Arduino (ou sans ;) ), il faut simuler la touche "CTRL" + "ECHAP" (simultanément bien sur)
Vous pourrez ensuite saisir "charmap.exe" et valider avec la touche "entrée".
Voilà nous sommes dans notre fameux :
Ensuite, il faudra 2 fois simuler la touche "tabulation"
Notre curseur sera alors positionné sur la tableau, et il nous faudra nous déplacer avec les touches directionnelles ...
En l’occurrence pour le "\", il faudra simuler 19 fois un appui sur la flèche "droite", et 2 fois sur la flèche du "bas" ...
Pour sélectionner le caractère "\", il faudra simuler la touche "entrée"
Puis simuler 2 fois la toucher tabulation et "entrée" pour cliquer sur le bouton "copier"
Et fermer avec un Alt+F4
Pour l'Arduino, j'ai codé un petit bout de code, qui vous permettra via les coordonnées dans le tableau, (19, 2 pour le "\") de copier un caractère dans le presse-papiers
Par exemple, pour copier "\" dans le presse papier
getCharFromWindowsCharTab(19,2);
Pour les fous furieux du C, j'ai développé une simulation "console" de ce qui se passerait :
new-project-20161129-tar
Conclusion
Vous allez pouvoir avec cette méthode utiliser tous les caractères spéciaux sous windows.