如何在控制台应用程序中处理按键事件

如何在控制台应用程序中处理按键事件

我想创建一个控制台应用程序,它将显示在控制台屏幕上按下的键,我到目前为止制作了这段代码:

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

我想知道,我应该在main中输入什么,以便我可以调用该事件?


尚方宝剑之说
浏览 556回答 3
3回答

蓝山帝景

对于控制台应用程序,您可以执行此操作,do while循环运行直到您按下xpublic class Program{     public static void Main()     {         ConsoleKeyInfo keyinfo;         do         {             keyinfo = Console.ReadKey();             Console.WriteLine(keyinfo.Key + " was pressed");         }         while (keyinfo.Key != ConsoleKey.X);     }}这仅在您的控制台应用程序具有焦点时才有效。如果要收集系统范围的按键事件,可以使用Windows挂钩

红颜莎娜

另一个解决方案,我用它来进行基于文本的冒险。        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);
打开App,查看更多内容
随时随地看视频慕课网APP