begin process at 2012 05 30 09:34:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Si j'appuye sur tel touche alors tel action


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Si j'appuye sur tel touche alors tel action

mardi 14 septembre 2004 à 18:33:02 | Si j'appuye sur tel touche alors tel action

XorCo

Salut !

QQun pourrais me dire comment je pourrais faire pour par example quand j'appuye sur F1 à l'écran il m'affiche "vous avez appuyez sur F1" et quand j'appuye sur F2 il m'affiche "vous avez appuyer sur F2"

Donc cela devrait ressembler à:


if ( touche(F1) ) {
printf("vous avez appuyer sur F1");
}
if ( touche(F2) ) {
printf("vous avez appuyer sur F1");
}

Merci !

PS: essayer d'être quand-même assé précis .. ça fait deux semaine que je cherche sur le net et toujours sans succès... vs êtes mon dernier éspoir
Tout ce que j'ai trouvé c'était des trucs genre kbhit() mais ça marche pas trop ... sinon j'ai encore trouvé sur WM_KEYDOWN ... mais ça j'y capte rien ! faut un truc simple quoi

mardi 14 septembre 2004 à 18:59:00 | Re : Si j'appuye sur tel touche alors tel action

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

pour le mode console, il faut utiliser kbhit().

mais si tu fonctionne en mode window, tu dois utiliser WM_KEYDOWN.

trouve toi un ide qui te genere le code de base et tu verra que la gestion WM_KEYDOWN ensuite sera tres simple:

if(uMsg==WM_KEYDOWN)
{
if(lParam==VK_F1) printf(...)
if(lParam==VK_F2) printf(...)
}

tu peux aussi utiliser une ressource et CreateDialogParam(), il ne te restera plus qu'a faire la WndProc, rien de bien mechant,
en même pas 20 lignes de code, c'est réglé.

tu dois comprendre comment est crée une boite de dialogue ou une fenetre et la gestion des messages qui en découle.

tout ça, c'est vraiment la base, trouve toi des exemples Hello World, et autres tuts qui fourmillent sur le net ...

@++
mardi 14 septembre 2004 à 19:18:23 | Re : Si j'appuye sur tel touche alors tel action

XorCo

Ouais oki. Mais si je suis bêtement en mode console...Que dois-je faire avec mon kbhit() ? Comment dois-je associé mon kbhit avec les touches ? Genre je dois avoir une fonction qui retourne leur valeur ASCII et puis ? Voilà le début que j'avais ...

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <conio_mingw.h> // Pour kbhit()

int main()
{
char touche;
touche = getch();
if ( kbhit() )
{
switch(touche)
{
case: valeur_F1; // Comment est-ce que j'arrive à cet valeur ?
printf("%d",touche);
break;
case: valeur_F2; // Comment est-ce que j'arrive à cet valeur ?
printf("%d",touche);
break;
}
}
system("PAUSE");
return 0;
}


Mais bon comment dois-je continuer ?
Merci!

PS: J'arrive même plus à retrouver la fonction kbhit dans mes headers.. ça marche plus. J'utilise Dev-C++. Que dois-je faire pour retrouver cet fonction ?
mardi 14 septembre 2004 à 19:52:49 | Re : Si j'appuye sur tel touche alors tel action

eRoZion

Membre Club
Alors pour retrouver cette fonction faut inclure <conio.c> au lieu de <conio.h> dans devcpp.

Autrement, si tu veux faire de la jolie console, rien de mieux que les outils borland (c'est d'ailleurs ce qu'il faudra que tu utilises si tu veux te servir de conio.h). C'est d'ailleurs la solution la plus simple.

Quant à ton problème, c'est pas kbhit() qu'il te faut utiliser, en tous cas c'est pas exactement ce que tu cherche meme si ça se couple très bien avec ce genre de problème.
Toi ce qu'il te faut c'est la fonction "getch()" toujours dans conio.h

unsigned char key;
key=getch();
if(key=='a') { ... }
// etc

Regarde aussi à quoi serts "kbhit()" concernant le clavier parce que tu vas vite en avoir besoin.

NB: Attention, les touches genre F1 renvoie deux char au lieu d'un seul, pour les traiter il suffit de faire un cas spécial lorsque la valeur de key==0 alors key==getch() et tu traite cette seconde valeur en tenant compte du fait qu'il s'agisse d'un touche spéciale.

NB2: Regarde aussi du coté de "bioskey()".


eRoZion
mardi 14 septembre 2004 à 20:59:22 | Re : Si j'appuye sur tel touche alors tel action

XorCo

Oki parfait je vais essaye Borland C++ Builder. Par contre il y a encore 2 points pas très claire...

1) J'ai pas très bien compris ton explication pour les touches F1,...
donc je fais:

unsigned char key;
key=getch();

if ( key == 0 ) {
if ( key==getch() ) {
// et puis ?
}
}

--------

2) La fonction bioskey() m'allaire très intéressante! mais ou puis-je trouver le bios.h pour cette fonction ? Y a pas moyen que tu me l'envoie ou un truc du style ?

Merci !

mardi 14 septembre 2004 à 21:33:29 | Re : Si j'appuye sur tel touche alors tel action

eRoZion

Membre Club
Donne moi ton mail ce sera plus simple.


eRoZion
mercredi 15 septembre 2004 à 01:23:35 | Re : Si j'appuye sur tel touche alors tel action

racpp

Administrateur CodeS-SourceS
Salut,
Voici la solution de ton problème :
http://www.cppfrance.com/forum.v2.aspx?ID=284213
Le petit exemple que tu y trouveras, montre comment récupérer le code ascii d'une touche alphanumérique ou le code SCAN de n'importe quelle autre touche comme F1-F12. Pour récupérer le code SCAN , comme l'a dit eRozion, il faut appeler getch deux fois. A toi d'utiliser le code obtenu comme tru veux dans ton application. Ca marche avec tous les compilateurs.

mercredi 15 septembre 2004 à 04:24:07 | Re : Si j'appuye sur tel touche alors tel action

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Je viens de poster un petit source qui montre comment utiliser les touches F1-F12, touches fléchées, INSER, SUPPR, DEBUT, FIN, PAGE UP, et PAGE DOWN, dans un projet console:
http://www.cppfrance.com/code.aspx?ID=26179
mercredi 15 septembre 2004 à 09:53:01 | Re : Si j'appuye sur tel touche alors tel action

eRoZion

Membre Club
racpp > "Ca marche avec tous les compilateurs."
Pas sur, comme dit au début du post, conio n'est pas très répendu.

Je regarde ta source ce soir en rentrant.

XorCo > Je te contacte ce soir.


eRoZion
mercredi 15 septembre 2004 à 15:39:52 | Re : Si j'appuye sur tel touche alors tel action

XorCo

Merci à tous, j'apprécie votre aide et votre patience pour ceux qui ne s'y connaissent pas autant que vous.

1 2

Cette discussion est classée dans : touche, appuye, f2, f1, appuyer


Répondre à ce message

Sujets en rapport avec ce message

comment fait on pour appuyer sur une touche [ par Krox68 ] j'aimerai savoir si on peut faire "appuyer" sur une touche a un programme C++, c a dire comme si l'utilisateur tapai une touche, mais c automatiquemer Gestion calvier [ par T_Mehdi ] bon je travail sous vc++6 et j''ai besoni de controler le calvier j'ai reussi a utiliser les touche F1..F12 et enter par VK_F1 mais j'ai pas trovué po langage C : Scanf() et touche F1-F12 [ par fartman2001 ] Bnojour,voila j'ai un probleme, je n'arrive pas à controler dans mon scanf() les touche F1 jusque F12, ququn pourrait-il me venir en aide car cela m'e Touches automatiques [ par TiotBour ] Bonjour,J'ai chercher dans l'aide et sur le site, je pense que c'est les mots que je tape qui ne vont pas, peut etre que quelqu'un pourra m'aider.J'ex écrire dans un fichier sans réécraser [ par yepla75 ] Salut,Pour mettre à jour un fichier F1 (modification d'un caractère en plein milieu par exemple), existe-t-il une manière de procéder "simple" en inte prise en compte des espaces [ par cytosyn2 ] Bonjour à tous. J'ai un petit programme qui scanne un fichier texte et crée un nouveau fichier identique au premier sauf certains caractères remplacé error C2106: '=' : l'opérande gauche doit être une l-value [ par sarahim ] svp aide moi,je travail avec le visual studio c++ windows forms,depuis hier jarrive pas aresolu cette erreur (error C2106: '=' : l'opérande gauche doi Fonction appuyer sur une touche pour continuer sous linux ???? [ par Crushlefou ] Voila salut j'ai un big probleme et je voulais savoir si kelk'un ki pouvais m'aider Alors je dois rendre un projet en C ki tourne sous Linux et dans c algorithme génétique [ par kamiloo2009 ] salut a tous j'ai une table, et je veux le fragmenter verticalement mais avec un algorithme génétique. voila un exemple: soit la table: T1={a,b,c,d} fragmentation verticale avec algo génétique [ par kamiloo2009 ] salut a tous j'ai une table, et je veux le fragmenter verticalement mais avec un algorithme génétique. voila un exemple: soit la table: T1={a,b,c,d}


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,412 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales