CLR: .Net / Mono / Boo / Otros CLR > C#
Codigo similar al kbhit()
KoRn_jsg:
Muy buenas a todos los foreros, pues en esta ocacion mi gran interrogativa si esque existe alguna metodo en C# parecido al kbhit(); del C++
PD: estoy usando el Visual Studio 2008 C# aplicacion de MSDOS
espero me puedan ayudar muchas gracias por sus respuestas!!! :alien:
tannke:
Si por ejemplo usabas la función en un ciclo while, tipo:
--- Código: C++ --- cprintf( "El programa está a la espera de registrar una tecla pulsada.rn");while( !kbhit() ); un reemplazo posible podria ser el:
--- Código: C# ---Console.ReadKey();
en este caso el programa no avanza hasta que se presione una tecla.
Espero te sea util.
KoRn_jsg:
En si lo que necesito hacer es que un ciclo de vueltas mientras no se preciosa una tecla especifica que yo elija es decir que si no presiono 's' entonces sigue haciendo las instrucciones que estan dentro de mi while....me dejo entender?
Pero de todos modos gracias por tratar de solucionar mi problema.....CUidate un abrazo!!!
tannke:
siguiendo con el mismo metodo que antes, el readkey y sabiendo lo que realmente necesitas, te pongo un ejemplo de una de las posibles maneras de hacer lo que necesitas:
--- Código: C# ---using System;using System.Collections.Generic;using System.Text;using System.Threading; namespace ConsoleApplication10{ class Program { static bool bandera = true; static void Main(string[] args) { Thread Hilo = new Thread(hilo); //creo un nuevo hilo Hilo.Start(); // Lo lanzo //programa que va contando los segundos y los muestra en pantalla... int contador = 0; //variable en segundos while (bandera) //mientras la bandera sea true el bucle continuara { Console.Clear(); //borro la pantalla Console.WriteLine(contador); //imprimo en pantalla el valor del contador contador++; //lo incremento Thread.Sleep(1000); //me paro en este punto durante 1 segundo } Console.WriteLine("Presionó 's'. Pulse ahora cualquier tecla para cerrar la aplicación"); Console.ReadKey(); } //este es el hilo que se encarga de leer la tecla presionada static void hilo() { while (true) { ConsoleKeyInfo tecla = Console.ReadKey(true); //leemos cualquier tecla presionada if (tecla.KeyChar == 115) //si es 's' minuscula, 115 en ascii... *leer edit { bandera = false; //cambiamos el estado de la bandera y break; //salimos del hilo } } } }}
edito:
decirte que tambien te servira:
--- Código: C# ---if (tecla.KeyChar=='s') o
--- Código: C# ---if (tecla.Key == ConsoleKey.S) en este ultimo caso te leeria la 's' tanto minuscula como mayuscula, en los otros 2 tendiras que especificar ambos casos si lo quisieras.
Espero te sirva. Un saludo
KoRn_jsg:
Compañero.....muchas gracias por tu mega aportazo...me sirvio de mucho....enserio gracias!!!.....
Navegación
[#] Página Siguiente
Ir a la versión completa