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

Signaler
Messages postés
5
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
7 janvier 2010
-
Messages postés
26
Date d'inscription
mardi 1 février 2011
Statut
Membre
Dernière intervention
2 mai 2013
-
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 !

4 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Salut, utilise un second thread ou qlq chose comme ça :

do
{
// ..

} while ( !Console.KeyAvailable );
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
25
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
---------------------
Messages postés
5
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
7 janvier 2010

Merci ;-)
Messages postés
26
Date d'inscription
mardi 1 février 2011
Statut
Membre
Dernière intervention
2 mai 2013

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;
}
}