Vérifier si un touche clavier est pressée SANS mettre le processus en pause (con [Résolu]

cs_Gulien 5 Messages postés mardi 28 juin 2005Date d'inscription 7 janvier 2010 Dernière intervention - 6 janv. 2010 à 22:14 - Dernière réponse : fmounir 26 Messages postés mardi 1 février 2011Date d'inscription 2 mai 2013 Dernière intervention
- 4 mai 2012 à 15:01
Bonsoir,

Malgré de nombreuses recherches, je n'ai malheureurement pas trouvé de solution à mon problème.

Je sais que pour savoir si une touche du clavier est pressée on peut utiliser Console.ReadKey().

Mais le problème c'est que le processus se met en pause jusqu'à ce que l'utilisateur presse une touche.

Je cherche donc une solution me permettant de savoir si l'utilisateur a pressé un touche et si oui que le programme fasse tel ou tel action et si non qu'il continue ce qu'il était en train de faire.

Merci d'avance !
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 7 janv. 2010 à 01:48
3
Merci
Salut, utilise un second thread ou qlq chose comme ça :

do
{
// ..

} while ( !Console.KeyAvailable );

Merci Lutinore 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Lutinore
Meilleure réponse
billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 7 janv. 2010 à 10:52
3
Merci
Bonjour,

@Lutinore: je voterai plus pour une solution de création d'un second thread.

Pourquoi pas utiliser la classe BackgroundWorker ?
Ainsi tu lances ton process dans un nouveau thread et tu attends que l'utilisateur principal appuie sur une touche dans le thread principal.

Bon développement,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------

Merci billou_13 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de billou_13
cs_Gulien 5 Messages postés mardi 28 juin 2005Date d'inscription 7 janvier 2010 Dernière intervention - 7 janv. 2010 à 14:34
0
Merci
Merci ;-)
Commenter la réponse de cs_Gulien
fmounir 26 Messages postés mardi 1 février 2011Date d'inscription 2 mai 2013 Dernière intervention - 4 mai 2012 à 15:01
0
Merci
Je répond peut être un peu en retard mais ça peut servir toujours :) :
ConsoleKeyInfo _PressedKey = Console.ReadKey();
switch (_PressedKey.Key)
{
case ConsoleKey.A: // Ton traitement ...
break;
case ConsoleKey.Add:
break;
case ConsoleKey.Applications:
break;
case ConsoleKey.Attention:
break;
case ConsoleKey.B:
break;
case ConsoleKey.Backspace:
break;
case ConsoleKey.BrowserBack:
break;
case ConsoleKey.BrowserFavorites:
break;
case ConsoleKey.BrowserForward:
break;
case ConsoleKey.BrowserHome:
break;
case ConsoleKey.BrowserRefresh:
break;
case ConsoleKey.BrowserSearch:
break;
case ConsoleKey.BrowserStop:
break;
case ConsoleKey.C:
break;
case ConsoleKey.Clear:
break;
case ConsoleKey.CrSel:
break;
case ConsoleKey.D:
break;
case ConsoleKey.D0:
break;
case ConsoleKey.D1:
break;
case ConsoleKey.D2:
break;
case ConsoleKey.D3:
break;
case ConsoleKey.D4:
break;
case ConsoleKey.D5:
break;
case ConsoleKey.D6:
break;
case ConsoleKey.D7:
break;
case ConsoleKey.D8:
break;
case ConsoleKey.D9:
break;
case ConsoleKey.Decimal:
break;
case ConsoleKey.Delete:
break;
case ConsoleKey.Divide:
break;
case ConsoleKey.DownArrow:
break;
case ConsoleKey.E:
break;
case ConsoleKey.End:
break;
case ConsoleKey.Enter:
break;
case ConsoleKey.EraseEndOfFile:
break;
case ConsoleKey.Escape:
break;
case ConsoleKey.ExSel:
break;
case ConsoleKey.Execute:
break;
case ConsoleKey.F:
break;
case ConsoleKey.F1:
break;
case ConsoleKey.F10:
break;
case ConsoleKey.F11:
break;
case ConsoleKey.F12:
break;
case ConsoleKey.F13:
break;
case ConsoleKey.F14:
break;
case ConsoleKey.F15:
break;
case ConsoleKey.F16:
break;
case ConsoleKey.F17:
break;
case ConsoleKey.F18:
break;
case ConsoleKey.F19:
break;
case ConsoleKey.F2:
break;
case ConsoleKey.F20:
break;
case ConsoleKey.F21:
break;
case ConsoleKey.F22:
break;
case ConsoleKey.F23:
break;
case ConsoleKey.F24:
break;
case ConsoleKey.F3:
break;
case ConsoleKey.F4:
break;
case ConsoleKey.F5:
break;
case ConsoleKey.F6:
break;
case ConsoleKey.F7:
break;
case ConsoleKey.F8:
break;
case ConsoleKey.F9:
break;
case ConsoleKey.G:
break;
case ConsoleKey.H:
break;
case ConsoleKey.Help:
break;
case ConsoleKey.Home:
break;
case ConsoleKey.I:
break;
case ConsoleKey.Insert:
break;
case ConsoleKey.J:
break;
case ConsoleKey.K:
break;
case ConsoleKey.L:
break;
case ConsoleKey.LaunchApp1:
break;
case ConsoleKey.LaunchApp2:
break;
case ConsoleKey.LaunchMail:
break;
case ConsoleKey.LaunchMediaSelect:
break;
case ConsoleKey.LeftArrow:
break;
case ConsoleKey.LeftWindows:
break;
case ConsoleKey.M:
break;
case ConsoleKey.MediaNext:
break;
case ConsoleKey.MediaPlay:
break;
case ConsoleKey.MediaPrevious:
break;
case ConsoleKey.MediaStop:
break;
case ConsoleKey.Multiply:
break;
case ConsoleKey.N:
break;
case ConsoleKey.NoName:
break;
case ConsoleKey.NumPad0:
break;
case ConsoleKey.NumPad1:
break;
case ConsoleKey.NumPad2:
break;
case ConsoleKey.NumPad3:
break;
case ConsoleKey.NumPad4:
break;
case ConsoleKey.NumPad5:
break;
case ConsoleKey.NumPad6:
break;
case ConsoleKey.NumPad7:
break;
case ConsoleKey.NumPad8:
break;
case ConsoleKey.NumPad9:
break;
case ConsoleKey.O:
break;
case ConsoleKey.Oem1:
break;
case ConsoleKey.Oem102:
break;
case ConsoleKey.Oem2:
break;
case ConsoleKey.Oem3:
break;
case ConsoleKey.Oem4:
break;
case ConsoleKey.Oem5:
break;
case ConsoleKey.Oem6:
break;
case ConsoleKey.Oem7:
break;
case ConsoleKey.Oem8:
break;
case ConsoleKey.OemClear:
break;
case ConsoleKey.OemComma:
break;
case ConsoleKey.OemMinus:
break;
case ConsoleKey.OemPeriod:
break;
case ConsoleKey.OemPlus:
break;
case ConsoleKey.P:
break;
case ConsoleKey.Pa1:
break;
case ConsoleKey.Packet:
break;
case ConsoleKey.PageDown:
break;
case ConsoleKey.PageUp:
break;
case ConsoleKey.Pause:
break;
case ConsoleKey.Play:
break;
case ConsoleKey.Print:
break;
case ConsoleKey.PrintScreen:
break;
case ConsoleKey.Process:
break;
case ConsoleKey.Q:
break;
case ConsoleKey.R:
break;
case ConsoleKey.RightArrow:
break;
case ConsoleKey.RightWindows:
break;
case ConsoleKey.S:
break;
case ConsoleKey.Select:
break;
case ConsoleKey.Separator:
break;
case ConsoleKey.Sleep:
break;
case ConsoleKey.Spacebar:
break;
case ConsoleKey.Subtract:
break;
case ConsoleKey.T:
break;
case ConsoleKey.Tab:
break;
case ConsoleKey.U:
break;
case ConsoleKey.UpArrow:
break;
case ConsoleKey.V:
break;
case ConsoleKey.VolumeDown:
break;
case ConsoleKey.VolumeMute:
break;
case ConsoleKey.VolumeUp:
break;
case ConsoleKey.W:
break;
case ConsoleKey.X:
break;
case ConsoleKey.Y:
break;
case ConsoleKey.Z:
break;
case ConsoleKey.Zoom:
break;
default:
break;
}
}
Commenter la réponse de fmounir

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.