Page 1 of 2
[RÉSOLU]Détecter les touches appuyées au clavier
Posted: 30 Apr 2012, 14:19
by Kalaeman
J'ai vu qu'il était possible de retourner la position actuelle de la souris. Est-il possible d'une quelconque façon de retourner les touches appuyées au clavier?
Re: Détecter les touches appuyées au clavier
Posted: 02 May 2012, 22:43
by niconil
pour saisir une chaine rentrée par l'utilisateur, j'utiliserai l'action entrée de donnée.
mais capter les évènements clavier déclenchés par un utilisateur sans qu'il le sache
je ne vois pas et ce n'est peut-etre pas dans le scope d'actionaz ...
Re: Détecter les touches appuyées au clavier
Posted: 03 May 2012, 07:59
by Jmgr
Ce n'est pas possible pour l'instant, je suis en train de travailler sur un système qui permettrait d’appeler une fonction en JavaScript à chaque pression de touche, mais c'est plus complexe que ça n'en a l'air car il n'existe pas de norme au niveau du nommage des touches entre Windows et GNU/Linux. (d'ailleurs c'est aussi la raison pour laquelle il n'y a toujours pas d'option pour enregistrer un script à partir de ce que fait l'utilisateur)
Re: Détecter les touches appuyées au clavier
Posted: 04 May 2012, 22:58
by Kalaeman
Ok, j'imagine bien que c'est complexe s'il te faut inventer le système toi même. Bonne chance dans tous les cas
Re: Détecter les touches appuyées au clavier
Posted: 11 May 2012, 10:31
by wismerheal
Bonjour,
Vous pouvez cependant feinter en utilisant un programme tiers qui permet de récupérer la saisie et l'export dans un endroit donné sous forme de texte qui ensuite est exploitable par Actionaz 3.
Il vous suffira de proposer l'installation de ce logiciel tiers à vos utilisateurs.
Re: [RÉSOLU]Détecter les touches appuyées au clavier
Posted: 14 Apr 2018, 17:42
by xan2622
Bonjour.
Je déterre ce sujet car il correspond exactement à ce que je cherche.
J'ai fait une recherche et j'ai trouvé la même suggestion dans un autre sujet :
https://www.jmgr.net/forum/viewtopic.ph ... uche#p4831
Rajouter une action qui attend la pression d'une touche par l'utilisateur. (Entrée, F1, F2... )
L'utilisation que j'imagine permettrait de faciliter la création de programmes à exécution passive.
J'entends par là que le programme reste en cours d'exécution (en attente) et que dès qu'une touche est appuyée par l'utilisateur,
le programme va automatiser une série d'actions différentes suivant la touche qui est saisie ...
Je ne saurais le dire autrement, ces deux sujets résument parfaitement ce que j'aimerais voir dans Actiona :
la détection d'appui sur les touches.
Y a t-il du nouveau du côté développement de cette fonction ?
Re: [RÉSOLU]Détecter les touches appuyées au clavier
Posted: 14 Apr 2018, 21:20
by Jmgr
Salut,
Oui c'est une fonctionnalité fréquemment demandée. Malheureusement les problèmes rencontrés il y a 6 ans sont toujours présents, et mon temps libre a encore réduit depuis cette époque...
Peut-être qu'une version intermédiaire pourrait permettre de sélectionner certaines touches seulement, comme cela pas de soucis avec la compatibilité entre les systèmes d'exploitation ?
Quoi qu'il en soit, je ne peux hélas pas promettre de date d'ajout pour cette fonctionnalité.
Re: [RÉSOLU]Détecter les touches appuyées au clavier
Posted: 14 Apr 2018, 21:39
by xan2622
Pour le script que je fais en ce moment, je n'ai besoin que de la touche
Entrée mais supporter que quelques touches ne serait qu'une façon bancale de régler le problème.
Autant faire ça bien dès le début (enfin je pense).
J'ai cherché du côté de Javascript pour voir si je ne pouvais pas ajouter un bout de code JS à mon script Actiona. Voici ce que j'ai trouvé :
https://medium.com/@uistephen/keyboarde ... dbad0a067a
Le hic c'est que je ne sais absolument pas programmer. Je ne sais pas comment faire pour capturer les touches avec Javascript.
S'il faut encourager le développeur de Actiona (si tu vois de qui je veux parler
), je suis prêt à mettre 50 € pour l'ajout complet et fonctionnel de cette fonction. Grâce à
Bountysource, il est possible d'ajouter des bounty sur les issues Github. J'ai déjà remercié les développeurs d'autres projets open-source pour avoir corrigé ou implémenté des fonctionnalités.
Je pense que c'est vraiment une des fonctions qui manquent à Actiona, actuellement.
Re: [RÉSOLU]Détecter les touches appuyées au clavier
Posted: 15 Apr 2018, 14:20
by MDLE46
Bonjour,
Je n'ai pas creusé, mais je pense ça pourrait le faire tout simplement en utilisant la librairie keypress.
Voir les sites ci-dessous :
http://jslibrairie.ek.la/keypress-js-a112737438
https://github.com/dmauro/Keypress/blob ... e#L728-864
https://dmauro.github.io/Keypress/
Cordialement.
MDLE46
Re: [RÉSOLU]Détecter les touches appuyées au clavier
Posted: 15 Apr 2018, 14:36
by MDLE46
Re bjr, tout simplement c'est surement vite dit ... MDLE46.
Re: [RÉSOLU]Détecter les touches appuyées au clavier
Posted: 15 Apr 2018, 17:22
by MDLE46
Re-bjr, Désolé, la librairie keypress ne fonctionne pas avec Actiona. MDLE46.
Re: [RÉSOLU]Détecter les touches appuyées au clavier
Posted: 15 Apr 2018, 19:33
by Jmgr
Le Javascript (ou plus précisément l'Ecmascript) est un langage qui inclut très peu de fonctions. Le Javascript utilisé dans les navigateurs comporte beaucoup de fonctions spécifiques au Web, notamment pour capturer des touches.
Le Javascript inclu dans Actiona ne comporte pas toutes ces fonctions (Actiona n'est pas un navigateur Web), il possède néanmoins quelques fonctions supplémentaires :
https://wiki.actiona.tools/doku.php?id=fr:code
En bref, on ne peut que difficilement mélanger des scripts Web avec des scripts Actiona, la plupart du temps il manquera des fonctions.
Merci pour la proposition de "bounty", je vais y réfléchir. Ce qui me manque actuellement c'est plus du temps que de l'argent.
Pour résumer les difficultés à mettre en place cette fonctionnalité :
- Windows et Linux ont leur propre définition de ce qu'est une "touche", c'est à dire qu'il faut trouver un moyen de convertir une touche d'un OS à un autre de manière fiable
- Il ne faut pas confondre une touche avec un caractère : la touche à l'emplacement du caractère "a" sur un clavier français va donner un caractère "q" sur un clavier US. Alors, qu'est-ce qu'on stocke ? Une touche ou un caractère ? (question ouverte)
- Capturer une touche même si une autre application est en premier plan est compliqué, en général les systèmes d'exploitation interdisent ou limitent ce genre de fonctionnalité parce que ça permet d'enregistrer facilement toutes les pressions de touche (problème de sécurité) ; dans le cas du Web c'est facile puisque que c'est toujours le navigateur qui est au premier plan
Re: [RÉSOLU]Détecter les touches appuyées au clavier
Posted: 15 Apr 2018, 21:16
by xan2622
- Windows et Linux ont leur propre définition de ce qu'est une "touche", c'est à dire qu'il faut trouver un moyen de convertir une touche d'un OS à un autre de manière fiable
Actiona ne pourrait-il pas détecter l'OS sur lequel il tourne ? Et en fonction de ça, avoir un code de détection de touche différent en fonction de l'os ? Je sais, c'est pas super au niveau portabilité du code mais je pense que d'autres logiciels font comme ça, non ?
- Il ne faut pas confondre une touche avec un caractère : la touche à l'emplacement du caractère "a" sur un clavier français va donner un caractère "q" sur un clavier US. Alors, qu'est-ce qu'on stocke ? Une touche ou un caractère ? (question ouverte)
Actiona pourrait, là aussi, détecter le "layout" du clavier (EN, FR, ES...) et en fonction de ça, stocker le bon caractère.
- Capturer une touche même si une autre application est en premier plan est compliqué, en général les systèmes d'exploitation interdisent ou limitent ce genre de fonctionnalité parce que ça permet d'enregistrer facilement toutes les pressions de touche (problème de sécurité)
Est-ce qu'en lançant Actiona avec les "droits Administrateur", cela pourrait remédier au problème ?
D'une manière générale, je n'aime pas l'idée de lancer un logiciel avec des droits élevés mais si ça peut régler (temporairement) le problème..
Re: [RÉSOLU]Détecter les touches appuyées au clavier
Posted: 15 Apr 2018, 21:48
by Jmgr
Actiona ne pourrait-il pas détecter l'OS sur lequel il tourne ? Et en fonction de ça, avoir un code de détection de touche différent en fonction de l'os ? Je sais, c'est pas super au niveau portabilité du code mais je pense que d'autres logiciels font comme ça, non ?
Bien sûr, l'idée ici serait d'avoir des fonctions de conversion par OS, pour pouvoir passer d'un identifiant unique à l'OS à un identifiant multiplateforme. Le problème c'est qu'il n'y a aucune convention à ce niveau. Certaines touches n'existent que sur Windows, d'autres que sous Linux. Et encore, je dis "Linux", mais il y a plusieurs sous-systèmes ayant chacun leur propre liste de touches supportées (EVDEV semble être le plus courant cela dit).
J'ai trouvé récemment un exemple de code source qui semble faire ça :
https://github.com/depp/keycode
Malheureusement il ne semble pas prendre en compte la disposition (layout) du clavier et me propose "q" alors que j'ai tapé "a".
Actiona pourrait, là aussi, détecter le "layout" du clavier (EN, FR, ES...) et en fonction de ça, stocker le bon caractère.
C'est le même problème : il n'y a aucune convention entre les OS. Si je faisait un logiciel uniquement pour Windows ou Linux ça ne poserait pas de problème, mais ici j'ai besoin de prendre en compte au moins ces deux OS.
Est-ce qu'en lançant Actiona avec les "droits Administrateur", cela pourrait remédier au problème ?
D'une manière générale, je n'aime pas l'idée de lancer un logiciel avec des droits élevés mais si ça peut régler (temporairement) le problème..
Sans doute, mais je ne veux pas qu'on aie à lancer le programme avec des droits d'administrateur, c'est trop dangereux. De plus beaucoup de personnes n'ont pas ces droits sur leur ordinateur.
Bref, ce n'est pas insurmontable, c'est juste beaucoup plus compliqué que ça en a l'air
Re: [RÉSOLU]Détecter les touches appuyées au clavier
Posted: 16 Apr 2018, 05:45
by xan2622
J'ai trouvé récemment un exemple de code source qui semble faire ça :
https://github.com/depp/keycode
Malheureusement il ne semble pas prendre en compte la disposition (layout) du clavier et me propose "q" alors que j'ai tapé "a".
Ne serait-il pas possible de créer une
issue sur ce dépôt Github pour demander des explications ou même demander de supporter les layouts différents (EN, FR, ES...) ? Je pense que ce
depp sera content de voir que sa library est utilisée