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

Résolu
cs_Gulien Messages postés 5 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 7 janvier 2010 - 6 janv. 2010 à 22:14
fmounir Messages postés 26 Date d'inscription mardi 1 février 2011 Statut Membre Dernière intervention 2 mai 2013 - 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 !
A voir également:

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
7 janv. 2010 à 01:48
Salut, utilise un second thread ou qlq chose comme ça :

do
{
// ..

} while ( !Console.KeyAvailable );
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
7 janv. 2010 à 10:52
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
---------------------
3
cs_Gulien Messages postés 5 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 7 janvier 2010
7 janv. 2010 à 14:34
Merci ;-)
0
fmounir Messages postés 26 Date d'inscription mardi 1 février 2011 Statut Membre Dernière intervention 2 mai 2013
4 mai 2012 à 15:01
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;
}
}
0
Rejoignez-nous