[Code]Textbox qui affiche la touche tapée

Fermé
Signaler
Messages postés
73
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
-
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
-
Bonsoir, je travaille en vb2010 et j'aimerais créer une textbox qui récupère la touche pressée. la form sera composée de :

*Un bouton, qui permet d'ouvrir une form ou un msgbox et que quand l'on appuie sur une touche,
*Une textbox, grisée a coté aie pour texte la touche pressée précédemment.

Il y a ceci dans beaucoup de logiciels notamment pour créer des touches de raccourcis (mais ce n'est pas ce que je veux faire). Merci de votre compréhension et bonne soirée/journée


Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb

55 réponses

Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
Bonjour,

Tu peux regarder les événements KeyPress, KeyDown et KeyUp.
Si tu veux plus de possibilités, et intercepter les touches même si ton appli n'est pas active, il faut aller regarder du coté du hooking.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Messages postés
73
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
1
bonsoir,

je me suis déja intéréssé a ces evenements mais comment les mettre en place et retourner la valeur de la touche ?


Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Bonjour,


KeyPress, KeyDown et KeyUp


Voici :

' exemple
Option Explicit On
Public Class Form1
  ' deux textBox 1 et 2
  Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    Dim ascii As Integer
    ascii = Asc(e.KeyChar)
    MsgBox("presse = " & ascii)
    ' C'est KeyPress qu'il faut utiliser pour les valeur ascii des touches
  End Sub

  Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    Dim ascii As Integer
    ascii = Asc(e.KeyCode)
    MsgBox("Down = " & ascii)
    ' valeur de localisation de la touche
  End Sub

  Sub TextBox2_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyUp
    Dim ascii As Integer
    ascii = Asc(e.KeyCode)
    MsgBox("Up = " & ascii)
    ' valeur de localisation de la touche
  End Sub

  End Class


Cordialement, Joe.
Messages postés
73
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
1
Merci pour cette réponse mais ce n'est pas vraiment ce que je veux obtenir.

Par exemple: il y a une textbox quand on tape une touche, ce soit ecrit la valeur de la touche ex : CTRL, A, J, Shift Espace, Enter etc..)


Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
Messages postés
73
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
1
Re-Bonjour,
j'ai essayé ce code:
 Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        TextBox1.Text = e.KeyChar.ToString
    End Sub

*Mais quand je tape par exemple p le texte de la textbox sera "pp"(en double) et si j'ecris (touche effacer), ce sera ecrit (un rectangle noir avec une boule blanche).

*Mon problème:

Je veux que l'utilisateur appuie sur une touche, l'ordinateur récupère cette valeur(pour l'utiliser) et que l'ordinateur affiche la touche tapée dans la textbox ex: (touche espace) ce sera écrit : espace ou space, a la façon du pc, mais il faut que l'utilisateur comprenne quelle touche il a écrit.

Votre code est bien mais si l'utilisateur voit la touche 45 il ne va pas savoir ce qu'il a écrit.

J'espère avoir été clair.
Merci de votre compréhension et bonne journée

Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
Bonjour,

Il me semble qu'il doit y avoir l'événement KeyPress qui te permettra de bloquer l'ajout de la touche.

Pour les Ctrl, Atl, ... Regardes parmi les membres du paramètre e.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Messages postés
73
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
1
Pour les caractères en douvle, c'est bon, voici mon code
Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        e.Handled = True
        TextBox1.Text = e.KeyChar.ToString
    End Sub


Mais il reste les alt, ctrl,espace, ret arr.
NHenry, comment faire pour ceci, avez vous une idée car le paramètre e, je ne le maitrise pas encore.

Merci beaucoup et a bientôt

Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
Bonjour,

http://msdn.microsoft.com/en-us/library/system.windows.forms.keyeventargs.aspx
Attributs Alt, Shift et Control.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
53
Salut
je n'ai pas compris
quand tu dis

*Une textbox, grisée a coté aie pour texte la touche pressée précédemment


la touche pressée est un évenement appartenant
à un control
donc si le control est ton textbox et le textbox
a le focus si je frappe la touche "a" dans le textbox sera écrit a et pas besoin d'écrire un
code
Messages postés
73
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
1
Ce sue je veux, c'est que si j'appuie sur tab, cela n'ecrive pas " " mais "Tab"


Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Eh bRobert,

T'as nHenri et moi qui t'avons passé des liens pour le code :

http://127.0.0.1:47873/help/1-4024/ms.help?method=page&id=T:SYSTEM.WINDOWS.FORMS.KEYS&product=VS&productversion=100&locale=fr-FR&topiclocale=FR-FR&topicversion=100&SQM=2

http://msdn.microsoft.com/en-us/library/system.windows.forms.keyeventargs.aspx
Attributs Alt, Shift et Control.

Et puis tu pourrais dire pourquoi tu veux avoir le nom des touches du clavier, car parfois j'ai le sentiment de perdre du temps à chercher une réponse pour une personne qui fait n'importe quoi... Indique bien quelle application tu comptes faire, quelle sera son objectif, etc...

Cordialement, Joe.
Messages postés
73
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
1
Bonjour,
Votre lien ne fonctionne pas,
Celui De NHenry je l'ai regardé mais je sais cette rubrique Je ne vais pas faire une condition a chaque appui d'une touche


Et puis tu pourrais dire pourquoi tu veux avoir le nom des touches du clavier, car parfois j'ai le sentiment de perdre du temps à chercher une réponse pour une personne qui fait n'importe quoi...

je suis un débutant merci


Indique bien quelle application tu comptes faire, quelle sera son objectif, etc...


Alors je réplique:
Je veux faire une application simple, Une textbox, un bouton,Une form2.vb
la textbox, readOnly ou enabled a false.
Dès que l'on appuie sur le bouton, la form2.vb s'affiche (Form2.show)
Dès que l'on appuie sur une touche avec la form2.vb ouverte, la form2 se ferme et dans la textbox 1 située dans la form1 aie pour valeur le touche tapée quand la form2 était affichée.

Voila le but de mon programme, Mais ne dites pas "Cela ne sert a rien" Si, je pourrais copier cette application dans une autre un jour, cela pourrait aussi aider les autres. Si ce post est résolu, je posterai cette application dans les codes.


Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour,
Mais ne dites pas "Cela ne sert a rien" Si, je pourrais copier cette application dans une autre un jour

Je ne vois en ce qui me concerne qu'une utilisation possible. Et elle n'est pas honorable du tout.
Mais si tu en as une autre (non espion) à l'esprit : on attend avec beaucoup d'intérêt de savoir laquelle !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
73
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
1
Mais si tu en as une autre (non espion) à l'esprit

Comment des raccourcis claviers dans une application peut etre un logiciel espion ? Expliquez moi comment ceci peut devenir une application "espion" ?


Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Je ne vois nulle part, dans ta démarche, tes questions et le rester, ce qui explique cette phrase :
Comment des raccourcis claviers dans une application peut etre un logiciel espion ?

Ce que j'y vois (suis-je le seul ?) c'est que tu veux afficher dans une textbox ce qui est frappé dans une autre. Que tu veux de surcroît y "traduire" en "clair" certaines touches, telles celle d'effacement. Quel rapport avec des raccourcis claviers ? ===>> AUCUN !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
et (ce n'est pas moi qui l'ai écrit) je te cite ! ===>>
Par exemple: il y a une textbox quand on tape une touche, ce soit ecrit la valeur de la touche ex : CTRL, A, J, Shift Espace, Enter etc..)



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
73
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
1
Ce n'est pas un key logger pour vous informer --'
Mais dans cette textbox , imagineons qu'elle a comme valeur "Inser" car la touche inser etait pressée.Quand on appuie sur une touche dans la form2.vb, la textbox s'efface et nscrit la touche tapée. ex:

Appui d'une touche dans la form2(inser) --> la textbox1 a pour texte "Inser"
Appui d'une touche dans la form2(ctrl) --> la textbox1 a pour texte "Control" ou "Ctrl" et non Inser+Control,Juste Ctrl, on efface la textbox avant.



Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
Messages postés
73
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
1
Ps: si je cherchais un keylogger, je n'irais pas sur ce site mas sur un site de hack ou taper 3 mots sur google.


Cordialement, Weathley

**********************************************************
Apprenti codeur en Vb
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Ecoute :
1) Les opérations que tu veux ainsi faire ne servent à rien d'autre qu'à dresser l'historique des touches utilisées
2) s'il s'agit d'exécuter des instructions lors de la frappe de touches : nul besoin de "traduire en clair" ces touches ! les évènements que tu as été invité à utiliser (KeyPress, KeyDown et KeyUp) te permettent d'en déterminer le code l'utilisation de ce code suffit (quel besoin d'enregistrer ailleurs ?) à lancer l'exécution d'instructions !
S'il s'agit d'une combinaison de touches : kif-kif en utilisant e (as System.Windows.Forms.KeyEventArgs). Tu ne sais pas ce que c'est ? ====>>
Lis alors
CECI
Voilà


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient