小编典典

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

c#

我想创建一个控制台应用程序,该应用程序将显示在控制台屏幕上按下的键,到目前为止,我已完成以下代码:

    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中键入什么以便可以调用该事件?


阅读 326

收藏
2020-05-19

共1个答案

小编典典

对于控制台应用程序,您可以执行此操作,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钩子

2020-05-19