Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Batch] coder le clic souris: solution

tentative de réponse à la question de savoir comment coder un clic bat

Sujet résolu
    26 avril 2023 à 21:45:39

    Bonjour,

    J'ai souvent vu des gens se poser comme moi la question à savoir comment coder un clic de souris dans un batch, et il y a deux solutions qui sont 1. le soft SetEscChar.exe qui fonctionne bien et 2. coder une interruption .asm relative au clic souris. Je n'ai trouvé que ça... jusqu'à ce soir.

    Je dirais que j'avais un didacticiel qui me proposait des %errorlevel%== -1 0 et 1 si je me souviens bien, mais dans un bat tel que celui que je suis en train de coder ce soir, cette solution ne fonctionne pas, sans que j'aie eu le temps d'analyser à savoir pourquoi et n'en aurai probablement pas le temps.

    Par contre, j'ai remarqué deux choses dans le batch que je propose ici:

    si je lance le logiciel, j'obtiens le clic droit codé en dos en tant que seul clic possible pour le coder en tant qu'%errorlevel%== 0 et me permettant de relancer le bout de code si je l'interromps au préalable par un clic gauche, le clic gauche ne faisant qu'interrompre le défilement à l'écran comme un CTRL + C et ne correspondant apparemment à aucun %errorlevel%, ni - 1 ni 1 ni 2, le 0 étant le clic droit.

    Ainsi, ici, je n'ai besoin ni de SetEscChar ni de coder d'application en assembleur pour obtenir, donc clic droit==> %errorlevel%==0 , et placer le résultat dans un comparateur if... else.

    Je tenais à partager avec vous cette solution que je viens de coder à l'instant. Certaines personnes parmi vous le savent peut-être déjà, mais des personnes comme moi autodidactes de A à Z en informatique, ne le savent... ou le savaient pas.

    code.bat :

    cls
    @echo off
    color 6C
    title test errorlevels choices / c fonctionnel

    :debut
    echo Voulez-vous continuer? Tapuscrivez Y pour oui, N pour non, A pour annuler.
    :: choice /C YNA
    :: set Y=1
    :: set N=2
    :: set A=3
    :: 0==clic dr
    ::
    :: si je place %errorlevel%== 0 , j'ai le clic gauche interruption et clic droit reprise, avec %reponse_reprise%== 0 du decodage comparateur if... else
    :: meme si je n'ai pas clique gauche en premier lieu;
    ::
    :: si je place les 3 set YNA, j'ai une deuxieme methode codant le clavier en tant qu' %errorlevel% .
    ::
    :: je peux peut-etre placer clic + YNA .
    if %ERRORLEVEL%== 0 ( goto developpement
    ) else if %ERRORLEVEL%== 1 ( goto finDeFichier
    ) else if %ERRORLEVEL%== 2 ( goto debut
    ) else (
        echo Le logiciel ne comprend pas votre reponse.
        ping -n 2 -w 1 127.0.0.1 > NUL
        goto question
    )
    :question
    echo Merci.
    goto debut
    :developpement
    echo Bravo, la suite dans environ une seconde (sic).
    :finDeFichier
    echo Ce n etait pas la peine de lancer le logiciel. La prochaine fois, abstenez-vous.
    goto debut
    pause>nul

    • Partager sur Facebook
    • Partager sur Twitter
      27 avril 2023 à 15:16:32

      A mon avis c'est une mauvaise pratique et sans doute un coup de chance, %errorlevel% n'indique pas un quelconque clic mais une "erreur" au niveau des commandes de l'invite de commandes. Ce que tu constates est, je crois, la manière normale dont interagit la souris avec une fenêtre d'invite de commande.
      • Partager sur Facebook
      • Partager sur Twitter
        10 juillet 2023 à 23:08:09

        Bonjour,

        Vous m'avez répondu "mauvaie pratique". Je ne suis pas d'accord, et j'ai peut-être été vite pour m'exprimer ici.
        Ce que j'ai dit est que l'on ne peut pas coder un clic en batch, en Dos.
        Le code que j'ai fait permet d'utiliser la fonction que vous avez dite normale, de façon à coder un clic en batch Dos.
        Avec le code-source que j'ai fait, j'ai une boîte à cliquer faite avec un batch, qui me permet d'afficher un message à l'écran en cliquant deux fois, une fois pour stopper le défilement et une deuxième fois pour relancer le défilement.
        J'ai donc codé en batch une boîte texte à cliquer, un bouton à cliquer.
        Vous m'avez répondu sans comprendre ce que j'ai dit, parce que pour vous, c'est impossible de coder un clic en batch.
        Je comprends.

        P.S. Le code-source que j'ai codé pour faire le bouton à cliquer en batch Dos n'est pas tout à fait le même que celui au premier message ici.

        -
        Edité par NirmelMouchiquel2 10 juillet 2023 à 23:11:33

        • Partager sur Facebook
        • Partager sur Twitter
          11 juillet 2023 à 13:13:07

          Je donnais juste mon avis qui peut totalement être discutable (je suis très loin d'être une référence). Si ton code fonctionne et réponds à ton besoin, alors c'est OK pour moi.

          ça serait donc intéressant d'avoir  ton code à jour

          • Partager sur Facebook
          • Partager sur Twitter
            30 août 2023 à 22:19:07

            Complètement d'accord, mais j'ai tendance à être un peu... euh... offusqué, c'est ça qu'on dit quand on essaie de protéger son code à soi?

            Je proposais ce code ci-dessus comme code de base, idée rapide à partir de laquelle j'ai travaillé ensuite. Par contre, je préfère garder le résultat dans le secret, étant Travailleur Indépendant, même si mon métier premier n'est pas le codage. C'est pourquoi je n'ai pas placé ici le résultat final, le codage définitif du bouton à cliquer: c'est le processus ici que j'ai voulu décrire. Ensuite, qui veut chercher le peut.

            • Partager sur Facebook
            • Partager sur Twitter
              31 août 2023 à 1:21:33

              Bonsoir,

              Désolé de vous le dire, mais la commande choice couplé à %errorlevel% ne permet pas de détecter un quelconque clic.

              J'imagine que :

               - Le clic gauche provoque une sélection dans l'invite de commande (visible dans le titre de la fenêtre) et "bloque" le défilement de la fenêtre (donc vous pensez que le script est en pause mais non).

               - Le clic droit enlève cette sélection et le défilement du script reprend (et pendant tout ce temps, %errorlevel%=0).

              Peut-être que votre script final se repose sur une autre méthode, mais le script posté dans votre poste d'origine ne fonctionne pas, désolé.

              • Partager sur Facebook
              • Partager sur Twitter
                5 décembre 2023 à 16:18:11

                Oui, c'est ce que j'ai dit plus haut, que je ne donnerai pas la solution, car mon code-source, c'est du code-source propriétaire. Je suis Travailleur Indépendant, et mon secret industriel, je ne le donne pas, d'ailleurs, je n'ai pas l'intention de le vendre non plus, de le divulguer... à tel point que l'INPI quand je dépose un brevet ne me donne que le Droit d'Antériorité puisque je n'explique rien de mes découvertes et inventions.
                • Partager sur Facebook
                • Partager sur Twitter

                [Batch] coder le clic souris: solution

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                • Editeur
                • Markdown