una teclas teclado tecla presionar presionada para net mostrar eventos evento combinaciones capturar boton asignar c# event-handling keyboard-events keylogger

teclas - evento para tecla enter c#



Cómo manejar el evento de pulsación de tecla en la aplicación de la consola (3)

Desafortunadamente, la clase de la consola no tiene ningún evento definido para la entrada del usuario, sin embargo, si desea generar el carácter actual que se presionó, puede hacer lo siguiente:

static void Main(string[] args) { //This will loop indefinitely while (true) { /*Output the character which was pressed. This will duplicate the input, such that if you press ''a'' the output will be ''aa''. To prevent this, pass true to the ReadKey overload*/ Console.Write(Console.ReadKey().KeyChar); } }

Console.ReadKey devuelve un objeto ConsoleKeyInfo , que encapsula mucha información sobre la tecla que se presionó.

Quiero crear una aplicación de consola que muestre la clave que se presiona en la pantalla de la consola, hice este código hasta el momento:

static void Main(string[] args) { // this is absolutely wrong, but I hope you get what I mean PreviewKeyDownEventArgs += new PreviewKeyDownEventArgs(keylogger); } private void keylogger(KeyEventArgs e) { Console.Write(e.KeyCode); }

Quiero saber, ¿qué debería escribir en main para poder llamar a ese evento?


Otra solución, la utilicé para mi aventura basada en texto.

ConsoleKey choice; do { choice = Console.ReadKey(true).Key; switch (choice) { // 1 ! key case ConsoleKey.D1: Console.WriteLine("1. Choice"); break; //2 @ key case ConsoleKey.D2: Console.WriteLine("2. Choice"); break; } } while (choice != ConsoleKey.D1 && choice != ConsoleKey.D2);


Para la aplicación de la consola puede hacer esto, el ciclo do while while se ejecuta hasta que presione x

public class Program { public static void Main() { ConsoleKeyInfo keyinfo; do { keyinfo = Console.ReadKey(); Console.WriteLine(keyinfo.Key + " was pressed"); } while (keyinfo.Key != ConsoleKey.X); } }

Esto solo funcionará si su aplicación de consola tiene foco . Si desea reunir eventos de pulsación de tecla en todo el sistema, puede usar ganchos de Windows