IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Test touches clavier


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Par défaut Test touches clavier
    Bonjour,

    Je voulais savoir s'il était possible de créer un programme en .vbs pour vérifier quelques touches de clavier ?

    Idée: Afficher un texte à saisir.
    => Fermer la fenêtre dès que le texte est saisi à l'identique
    => La fenêtre reste ouverte sans possibilité de faire autre chose tant que l'utilisateur n'a pas un clavier opérationnel pour continuer à utiliser le PC.

    Il faudrait prévoir un bouton abandon dans un premier temps.

    Si cela est possible, comment aboutir au code ? Du côté de stdin et out ?

    Je ne maitrise pas ces notions mais aimerait un coup de pouce.

    Merci.

  2. #2
    Membre averti
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wscript.stdout.write "TOUCHE1 :"
    TOUCHE1=wscript.stdin.readline
    J'ai un message d'erreur pour cela que j'ai collé dans un .vbs

  3. #3
    Membre averti
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Par défaut
    Bon j'ai pu avancer, si cela peut servir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    texte1="123456789"
    texte2=inputbox("Tapez: "&texte1&"")
    If texte1=texte2 Then
    msgbox("Ca marche")
    Else
    msgbox("Ca ne marche pas")
    End If

  4. #4
    Membre averti
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Par défaut
    Je vois les choses autrement au fur et à mesure.

    Comment pourrais-je enrichir une variable de toutes les touches saisies en directe sans validation et la comparer à chaque saisie jusqu'à obtenir une sorte de >= à la chaine de caractère 123456789

    Dès que la totalité des touches est ok, quitter le programme
    Si pas OK afficher les caractères des touches qu'il reste à tester.

    exemple: chaine de référence 123456789
    si je tape 123455556666677, il me reste 8 et 9 à saisir
    si je tape 12222334567889, le programme se termine

    Faut-il forcément valider une inputbox pour que la saisie soit prise en compte ou est-ce que le programme peut comparer à chaque touche appuyée ?

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut tsmir

    VbScript sert essentiellement a exécuter des taches sans interventions de l'utilisateur ou presque.
    Tourne toi tous de suite vers du HTA qui peut utiliser du VbScript cela avec un simple éditeur de texte (bloc note, Notepad++ encor mieux).
    Un exemple, du calcul:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    <HTML>
    	<HEAD> 
        <title>Mon premier prog de calcul</title>
    		<HTA:APPLICATION
     				MAXIMIZEBUTTON="no"
    				SCROLL="no"
    				BORDER = "thin"
            title="Du calcul"
    		>
    		<SCRIPT language="VBScript" type="text/vbscript">
            'redimensionner la fenêtre de départ
            ResizeTo 350,120: MoveTo (Screen.Width-350)/2,(Screen.Height - 120) / 2
                    </SCRIPT>
    		<style>
                            /* partie estetique des différents controles sur la page */
                            label{
                                    position: relative;
                                    left:10px;
                                    color:blue;
                            }
                            input{
                                    position:absolute;
                                    left:150px
                            }
                    </style>
    	</HEAD>
    	<BODY>
    		<label id="Lab1">Saisir prix d'achat:</label> <INPUT TYPE="text" id="Achat" Title="Enter pour calculer" SIZE="20" MAXLENGTH="30" VALUE="">
    		<BR>
    		<label id="Lab2">Saisir prix de vente:</label> <INPUT TYPE="text" id="Vente" Title="Enter pour calculer" SIZE="20" MAXLENGTH="30" VALUE="">
     
    		<script language="VBScript">
                'message pour traitement d'erreur, la variable MsG est valide dans toutes la partie Script
                            dim MsG: MsG = "Entrez un nombre valide (Exemple: 123,456)"
     
                            ' ----------------------------- évènement controle -------------------------------------------
                            Sub Window_Onload()
                                    Achat.focus() 'pour que le curseur souris soit sur l'input Achat
                            end sub
     
                            Sub Achat_onkeyup()
                                    if ToucheValide(window.event.keyCode) = false then exit sub
                                    'gestion du separateur decimale
                                    Achat.value = replace(Achat.value,".",",")
                                    if EntrerValide(Achat.value)=false then msgbox MsG:exit sub 'quitte imediatement la sub
                                            'ici on sait que l'on traite bien un nombre
                                            Vente.value = FormatNumber((Achat.value * 1.15 - 0.01),2)'on limite à 2 decimale
                            end sub
     
                            Sub Vente_onkeyup()
                                    if ToucheValide(window.event.keyCode) = false then exit sub
                                    Vente.value = replace(Vente.value,".",",")
                                    if EntrerValide(Vente.value)=false then msgbox MsG:exit sub
                                    Achat.value = FormatNumber((Vente.value+0.01) / 1.15,2)
                            end sub
     
                            ' ----------------------------------- gestion globale des erreurs ------------------------------
                            function ToucheValide(CodeKey)
                                    ToucheValide = true
                                    if CodeKey <> 13 then ' si la touche est inégale à Enter
                                            'veriffier que la touche égal un chiffre ou un point ou une virgule
                                            if ((CodeKey <49 Or CodeKey > 59) and (CodeKey <> 46 or CodeKey <> 44)) then
                                                    'si non, faire quitter la sub qui a appelée cette fonction
                                                    ToucheValide = false
                                            end if
                                    end if 
                            end function
                            function EntrerValide(valeur)
                                    EntrerValide = IsNumeric(valeur) 'renvoie false si valeur n'est pas un nombre, sinon true
                            end function
     
                    </script>
    	</BODY>
    </HTML>
    Il te suffit de sauvegarder le code avec l"extension .HTA .
    Tu trouveras beaucoup d'exemples de programmes HTA dans ce forum VbScript mais aussi dans la partie Vos Contributions VBScript.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. [Win32] Récupérer un appui touche clavier
    Par elsargento dans le forum MFC
    Réponses: 19
    Dernier message: 06/05/2006, 11h05
  2. Simuler un appui de touche clavier
    Par Floo dans le forum Assembleur
    Réponses: 5
    Dernier message: 03/12/2004, 17h04
  3. [JEditorPane]Captures des touches claviers
    Par splend_f dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 17/05/2004, 14h57
  4. [Applet]simuler une touche clavier
    Par mat10000 dans le forum Interfaces Graphiques en Java
    Réponses: 19
    Dernier message: 12/12/2003, 16h23
  5. envoie de touche clavier
    Par psfox2001 dans le forum DirectX
    Réponses: 1
    Dernier message: 13/03/2003, 21h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo