Besoin d'aide pour associer 2 touches clavier
Fermé
zakidz
Messages postés
5
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
9 juin 2009
-
4 mars 2008 à 16:06
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 6 mars 2008 à 22:40
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 6 mars 2008 à 22:40
A voir également:
- Besoin d'aide pour associer 2 touches clavier
- Touches rémanentes c'est quoi - Guide
- Telecharger clavier arabe تنزيل لوحة المفاتيح العربية - Télécharger - Divers Web & Internet
- Touche inser clavier - Guide
- Comment taper / sur clavier - Guide
- Télécharger clavier pour téléphone - Télécharger - Divers Utilitaires
5 réponses
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
5 mars 2008 à 17:04
5 mars 2008 à 17:04
Bonjour,
J'ai "bricolé" un petit programme qui devrait répondre à certaines questions que tu te poses fais-le tourner.
int main()
{
// Valeurs (codes ASCII) des principales touches du clavier. */
const int TOUCHE_ENTER = 13 ;
const int TOUCHE_ECHAP = 27 ;
const int TOUCHE_AJOUT = 82 ;
const int TOUCHE_FLECHG = 75 ;
const int TOUCHE_FLECHD = 77 ;
const int TOUCHE_SUPPR = 83 ;
const int TOUCHE_EFFACE = 71 ;
const int TOUCHE_TABD = 9 ;
const int TOUCHE_TABG = 8 ;
const int TOUCHE_PAGTOP = 73 ;
const int TOUCHE_PAGBOT = 81 ;
const int TOUCHE_PF11 = 133 ;
const int TOUCHE_PF12 = 134 ;
const int TOUCHE_ABANDON_PFx = 63 ;
signed int First_VAL_touches_PFx = 0 ;
signed int VAL_touche_pressee = 0 ;
while ( VAL_touche_pressee != TOUCHE_ABANDON_PFx ) // TOUCHE_ABANDON_PFx = 63 PF5
{
//Lecture de la valeur identifiant un caractère ou une touche.
VAL_touche_pressee = _getch () ;
First_VAL_touches_PFx = VAL_touche_pressee ;
// FILTRAGE DE LA NATURE DE LA TOUCHE PRESSEE
if ( First_VAL_touches_PFx == 8 || First_VAL_touches_PFx == 9 ||
First_VAL_touches_PFx == 13 || First_VAL_touches_PFx == 27)
{
printf ("\n Vous avez pressé une touche autre que PF11 "
"identifiée par 2 valeurs identiques %i et %i \n",
First_VAL_touches_PFx, First_VAL_touches_PFx);
}
else
{
// FILTRAGE DE LA TOUCHE PF11 (codes ASCII 224 133).
//0 ou 224 premières valeurs reçues identifiant une touche1
if ( First_VAL_touches_PFx == 0 || First_VAL_touches_PFx == 224 )
{
// Lecture de la seconde valeur identifiant la touche activée.
{ VAL_touche_pressee = _getch () ;}
//133 seconde valeur reçue identifiant précisément PF11
if ( VAL_touche_pressee != 133 )
{
printf ("\n Vous avez pressé une touche autre que PF11 "
"identifiée par les valeurs %i et %i \n",
First_VAL_touches_PFx, VAL_touche_pressee);
}
else
{
printf ("\n\n Vous avez pressé la touche PF11 identifiée par les"
" valeurs %i et %i \n\n", First_VAL_touches_PFx, VAL_touche_pressee);
}
}
else
{
printf ("\n Vous avez pressé une touche caractère alphanumerique"
" identifiée par la valeur : %i \n", First_VAL_touches_PFx);
}
}
}
return 0;
J'ai "bricolé" un petit programme qui devrait répondre à certaines questions que tu te poses fais-le tourner.
int main()
{
// Valeurs (codes ASCII) des principales touches du clavier. */
const int TOUCHE_ENTER = 13 ;
const int TOUCHE_ECHAP = 27 ;
const int TOUCHE_AJOUT = 82 ;
const int TOUCHE_FLECHG = 75 ;
const int TOUCHE_FLECHD = 77 ;
const int TOUCHE_SUPPR = 83 ;
const int TOUCHE_EFFACE = 71 ;
const int TOUCHE_TABD = 9 ;
const int TOUCHE_TABG = 8 ;
const int TOUCHE_PAGTOP = 73 ;
const int TOUCHE_PAGBOT = 81 ;
const int TOUCHE_PF11 = 133 ;
const int TOUCHE_PF12 = 134 ;
const int TOUCHE_ABANDON_PFx = 63 ;
signed int First_VAL_touches_PFx = 0 ;
signed int VAL_touche_pressee = 0 ;
while ( VAL_touche_pressee != TOUCHE_ABANDON_PFx ) // TOUCHE_ABANDON_PFx = 63 PF5
{
//Lecture de la valeur identifiant un caractère ou une touche.
VAL_touche_pressee = _getch () ;
First_VAL_touches_PFx = VAL_touche_pressee ;
// FILTRAGE DE LA NATURE DE LA TOUCHE PRESSEE
if ( First_VAL_touches_PFx == 8 || First_VAL_touches_PFx == 9 ||
First_VAL_touches_PFx == 13 || First_VAL_touches_PFx == 27)
{
printf ("\n Vous avez pressé une touche autre que PF11 "
"identifiée par 2 valeurs identiques %i et %i \n",
First_VAL_touches_PFx, First_VAL_touches_PFx);
}
else
{
// FILTRAGE DE LA TOUCHE PF11 (codes ASCII 224 133).
//0 ou 224 premières valeurs reçues identifiant une touche1
if ( First_VAL_touches_PFx == 0 || First_VAL_touches_PFx == 224 )
{
// Lecture de la seconde valeur identifiant la touche activée.
{ VAL_touche_pressee = _getch () ;}
//133 seconde valeur reçue identifiant précisément PF11
if ( VAL_touche_pressee != 133 )
{
printf ("\n Vous avez pressé une touche autre que PF11 "
"identifiée par les valeurs %i et %i \n",
First_VAL_touches_PFx, VAL_touche_pressee);
}
else
{
printf ("\n\n Vous avez pressé la touche PF11 identifiée par les"
" valeurs %i et %i \n\n", First_VAL_touches_PFx, VAL_touche_pressee);
}
}
else
{
printf ("\n Vous avez pressé une touche caractère alphanumerique"
" identifiée par la valeur : %i \n", First_VAL_touches_PFx);
}
}
}
return 0;
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
5 mars 2008 à 04:25
5 mars 2008 à 04:25
Bonsoir
par exemple je veux faire une touche lorsque j'appuis sur elle ,elle fait les evenement TAB+ESPACE
Chaque touche pressée au clavier renvoie une ou deux valeurs suivant le type de touche considéré (touches de fonction Fx, ou de navigation, ou alphanumériques)
La logique d'exécution de ton programme doit, dans un premier temps "capter" ces valeurs par un ordre particulier; getc en C par exemple. Ensuite cette logique doit déterminer le traitement à effectuer, en fonction de la ou des valeur(s) "captée(s)" correspondant à une touche pressée.
Si tu détermines que la touche X doit engendrer un traitement équivalent à l'emploi de deux touches, TAB+ESPACE dans ton exemple, c'est à toi d'organiser la logique d'exécution de ton programme en conséquence. Tu es le maître d'oeuvre !
par exemple je veux faire une touche lorsque j'appuis sur elle ,elle fait les evenement TAB+ESPACE
Chaque touche pressée au clavier renvoie une ou deux valeurs suivant le type de touche considéré (touches de fonction Fx, ou de navigation, ou alphanumériques)
La logique d'exécution de ton programme doit, dans un premier temps "capter" ces valeurs par un ordre particulier; getc en C par exemple. Ensuite cette logique doit déterminer le traitement à effectuer, en fonction de la ou des valeur(s) "captée(s)" correspondant à une touche pressée.
Si tu détermines que la touche X doit engendrer un traitement équivalent à l'emploi de deux touches, TAB+ESPACE dans ton exemple, c'est à toi d'organiser la logique d'exécution de ton programme en conséquence. Tu es le maître d'oeuvre !
zakidz
Messages postés
5
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
9 juin 2009
5 mars 2008 à 07:55
5 mars 2008 à 07:55
merci "cchristian" ,
le problème c' que j'arrive pas a faire ça , et je suis tres débutant en programmation :(
si quelqu'un peut me guider sur un lien ou ..... pour connaitre faire ça , parce que j' est tres besoin :(
merci de votre aide
le problème c' que j'arrive pas a faire ça , et je suis tres débutant en programmation :(
si quelqu'un peut me guider sur un lien ou ..... pour connaitre faire ça , parce que j' est tres besoin :(
merci de votre aide
zakidz
Messages postés
5
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
9 juin 2009
6 mars 2008 à 21:28
6 mars 2008 à 21:28
merci beacoup cchristian
je vais essayer ce programme
tanks ;)
je vais essayer ce programme
tanks ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
6 mars 2008 à 22:40
6 mars 2008 à 22:40
Bonsoir,
N'hésite pas à me poser des questions, si je peux répondre ce sera avec plaisir.
P.S. Il y aura un tout petit rectificatif à amener au programme, je te le ferai parvenir quand tu auras compris le principe général. Ca n'a pas d'incidence sur le fonctionnement, mais par contre c'est important pour la compréhension. Ca concerne la fonction kbhit (), un test à ajouter c'est tout.
N'hésite pas à me poser des questions, si je peux répondre ce sera avec plaisir.
P.S. Il y aura un tout petit rectificatif à amener au programme, je te le ferai parvenir quand tu auras compris le principe général. Ca n'a pas d'incidence sur le fonctionnement, mais par contre c'est important pour la compréhension. Ca concerne la fonction kbhit (), un test à ajouter c'est tout.