[RÉSOLU]Détecter les touches appuyées au clavier

Vous voulez de l'aide ? Postez ici :)
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: [RÉSOLU]Détecter les touches appuyées au clavier

Post by Jmgr »

J'ai pu avancer un peu sur ce sujet. J'ai défini une liste de ~230 touches qui sont communes entre Linux et Windows. Ces touches seront portables, c'est à dire qu'on pourra définir une action de condition de touche sur Windows et la faire fonctionner sous Linux par exemple. Les autres touches pourront aussi être utilisées mais l'action ne fonctionnera pas sur un autre système d'exploitation. C'est un compromis qui me semble acceptable.

Il me reste à compléter la liste des touches portables avec quelques cas particuliers (la touche AltGr par exemple), et à développer des contrôles ("widgets") permettant de choisir une touche ou une liste de touches qui doivent être pressées afin de valider l'action. Une fois que ça sera fait il faudra intégrer tout ça dans Actiona.

Il est donc plus que probable que cette action soit inclue dans Actiona 3.10 :)
xan2622 wrote: 16 Apr 2018, 05:45
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 :)
Finalement je pense que c'est une meilleure solution d'utiliser une touche par son nom/type que par son emplacement sur le clavier, l'utilisation de cette bibliothèque n'est donc pas nécessaire.
"My software never has bugs. It just develops random features."
xan2622
Posts: 6
Joined: 09 Jul 2016, 19:37

Re: [RÉSOLU]Détecter les touches appuyées au clavier

Post by xan2622 »

wow, merci merci merci Jmgr !
Je sais que c'est encore en développement mais tu m'as ravi avec ton dernier message sur l'avancement de cette fonctionnalité.

Chose promise, chose due :
Voici la bounty de 50$ (le site ne m'a pas proposé les Euros) dont j'ai parlé précédemment : https://www.bountysource.com/issues/570 ... -key-press

Une fois que tu auras fini de coder cette fonctionnalité dans Actiona, tu devras aller sur ce lien (ci-dessus) et réclamer (claim) la bounty. En attendant, tu peux cliquer sur Get Started et t'afficher comme "bounty hunter". Tu peux te connecter facilement à Bountysource avec ton compte Github.

Merci.
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: [RÉSOLU]Détecter les touches appuyées au clavier

Post by Jmgr »

Pour information, c'est toujours d'actualité. Je suis en train de développer cette action mais il faut encore compter quelques semaines/mois avant la publication de la prochaine version vu qu'il reste encore beaucoup à faire : documenter, ajouter des fonctions de code Javascript, tester, etc.
Si seulement je pouvais travailler à plein temps sur le logiciel ça serait top, mais bon...
"My software never has bugs. It just develops random features."
xan2622
Posts: 6
Joined: 09 Jul 2016, 19:37

Re: [RÉSOLU]Détecter les touches appuyées au clavier

Post by xan2622 »

Merci Jmgr pour cette version 3.10

Par contre, pourrais-tu nous aiguiller avec un petit tuto (avec exemple script) pour qu'on sache comment utiliser cette nouvelle fonction ?
Merci.
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: [RÉSOLU]Détecter les touches appuyées au clavier

Post by Jmgr »

L'action a une page de documentation qui peut aider : https://wiki.actiona.tools/doku.php?id= ... ycondition
Sinon voilà un petit script qui illustre une utilisation de l'action :

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actiona" version="3.10.0" scriptVersion="1.1.0" os="GNU/Linux"/>
    <actions>
        <action name="ActionKeyboardKeyCondition" version="1.0.0"/>
        <action name="ActionMessageBox" version="1.0.0"/>
    </actions>
    <parameters/>
    <resources/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionKeyboardKeyCondition">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="condition">
                <subParameter name="value" code="0">pressed</subParameter>
            </parameter>
            <parameter name="ifFalse">
                <subParameter name="action" code="0">wait</subParameter>
                <subParameter name="line" code="0"></subParameter>
            </parameter>
            <parameter name="ifTrue">
                <subParameter name="action" code="0">do_nothing</subParameter>
                <subParameter name="line" code="0"></subParameter>
            </parameter>
            <parameter name="keys">
                <subParameter name="value" code="0">[
    {
        &quot;type&quot;: &quot;3&quot;,
        &quot;value&quot;: &quot;116&quot;
    },
    {
        &quot;type&quot;: &quot;1&quot;,
        &quot;value&quot;: &quot;4&quot;
    },
    {
        &quot;type&quot;: &quot;1&quot;,
        &quot;value&quot;: &quot;6&quot;
    }
]
</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="customIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">information</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="action" code="0">do_nothing</subParameter>
                <subParameter name="line" code="0"></subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="action" code="0">do_nothing</subParameter>
                <subParameter name="line" code="0"></subParameter>
            </parameter>
            <parameter name="message">
                <subParameter name="value" code="0">Ctrl+Shift+T have been pressed!</subParameter>
            </parameter>
            <parameter name="textMode">
                <subParameter name="value" code="0">automatic</subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0">Keys!</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="windowIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
"My software never has bugs. It just develops random features."
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: [RÉSOLU]Détecter les touches appuyées au clavier

Post by Jmgr »

Mais si ce n'est pas clair, n'hésite pas :)
"My software never has bugs. It just develops random features."
Post Reply