为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
尚方宝剑之说 2019-08-28 14:25:34
如何在控制台应用程序中处理按键事件我想创建一个控制台应用程序,它将显示在控制台屏幕上按下的键,我到目前为止制作了这段代码:    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中输入什么,以便我可以调用该事件?
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

对于控制台应用程序,您可以执行此操作,do while循环运行直到您按下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);
    }}

这仅在您的控制台应用程序具有焦点时才有效。如果要收集系统范围的按键事件,可以使用Windows挂钩


查看完整回答
反对 回复 2019-08-28
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

另一个解决方案,我用它来进行基于文本的冒险。

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


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 555 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信