如何在控制台应用程序中处理按键事件我想创建一个控制台应用程序,它将显示在控制台屏幕上按下的键,我到目前为止制作了这段代码: 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挂钩
红颜莎娜
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);
- 3 回答
- 0 关注
- 555 浏览
添加回答
举报
0/150
提交
取消