Code asciii... [Résolu]

Signaler
Messages postés
24
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
24 avril 2010
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Bonjour, j'aimerai savoir comment on fait pour récuperer :

-le code ascii d'une touche lorsque l'on appuie dessus

Merci d'avance

31 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
C'est vrai que "ça marche pas" c'est vague.. Entre temps je tapais un petit exemple alors je le met quand même.

class Program
{
    [ DllImport( "msvcrt.dll", EntryPoint = "_getch" ) ]
    private static extern int Getch( );


    private static void Main( string[ ] args )
    {
        Console.WriteLine( "Hello World !" );
        int c = Getch( ); // Wait a key.


        Console.WriteLine( "Vous avez tapez: {0:x} ( {1} ).", c, ( char )c );
        Console.ReadLine( ); // Wait.


    }
}
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Salut,
En utilisant les events associés à ton Control: KeyDown, KeyPress et KeyUp (y'a toujours un KeyEventArgs ou un KeyPressEventArgs reçu en paramètre).

<hr />
-Blog-
Messages postés
24
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
24 avril 2010

je suis en mode console...il me faut qqchose genre getkey
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Ha, c'est un peu plus dur...
Peut-être que tu seras obligé de faire un hook... je ne sais pas s'il y a plus simple ?
Rien ne me vient à l'esprit directement en tout cas...

<hr />
-Blog-
Messages postés
24
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
24 avril 2010

je veux juste que quand je presse une touche ca me lise le code ascii de ce que j'ai pressé...
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Salut

ConsoleKeyInfo k =
Console.ReadKey(
true);

Console.WriteLine((
int)k.KeyChar);
Ou alors Console.Read() suivi d'enter

Mx
MVP C# 
Messages postés
24
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
24 avril 2010

je veux pas devoir appuyer sur enter...
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Si tu testes ma premiere solution donnée, pas besoin d'appuyer sur enter... (le forum a juste enlevé le saut de ligne apres le ';')

Mx
MVP C# 
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Haaaa un caractère rentré dans la Console, c'est pas ce que j'avais compris ^^

<hr />
-Blog-
Messages postés
24
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
24 avril 2010

il ne recconnait pas le consolekeyinfo et le console.readkey

je suis en c#.net
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Version 1.1 du Framework ?

Mx
MVP C# 
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Tu as mis un "using System;" ?

<hr />
-Blog-
Messages postés
24
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
24 avril 2010

oui j'ai mis usig system et je suis en framework 3.0 je crois
Messages postés
24
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
24 avril 2010

j'ai 3 framework : 1.1 , 2 .0, et 3.0 je sais pas lequel j'utilise...
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Alors aucune raison que cela ne passe pas :

<hr />using System;

namespace ConsoleApplication1
{

   class
Program
   {

      static
void Main(
string[] args)
      {

         ConsoleKeyInfo k =
Console.ReadKey(
true);

         Console.WriteLine((
int)k.KeyChar);
      }
   }
}

<hr />

Mx
MVP C# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Tu utilises quel IDE ?

Mx
MVP C# 
Messages postés
24
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
24 avril 2010

K:\C#\ConsoleApplication1\Class1.cs(17): Le type ou le nom d'espace de noms 'ConsoleKeyInfo' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Aaah oké, tu compiles a la main, donc apparement le framework 1.1 est utilisé.
Va falloir qur tu modifies le Path dans les variables d'environnement de Windows pour que la commande csc.exe fasse référence au SDK 2.0 plutot qu'au 1.1. (sauf si tu veux rester en 1.1)

Mx
MVP C# 
Messages postés
24
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
24 avril 2010

comment je sais quel ide j'utilise...?

Morpion tu aurais msn comme ca ca sera bcp plus simple
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Pas de support par MSN - seulement via les forums. Manquerait plus que ca


Si tu veux un IDE gratuit, installe Visual C# Express. Il te permettra de creer des projets .Net 2 et de les compiler plus facilement





Mx
MVP C#