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

Messages postés
5
Date d'inscription
mardi 28 juin 2005
Dernière intervention
7 janvier 2010
- - Dernière réponse : fmounir
Messages postés
26
Date d'inscription
mardi 1 février 2011
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 !
Afficher la suite 

Votre réponse

4 réponses

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

do
{
// ..

} while ( !Console.KeyAvailable );

Merci Lutinore 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Lutinore
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de billou_13
Messages postés
5
Date d'inscription
mardi 28 juin 2005
Dernière intervention
7 janvier 2010
0
Merci
Merci ;-)
Commenter la réponse de cs_Gulien
Messages postés
26
Date d'inscription
mardi 1 février 2011
Dernière intervention
2 mai 2013
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.