如何在控制臺(tái)應(yīng)用程序中處理按鍵事件我想創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序,它將顯示在控制臺(tái)屏幕上按下的鍵,我到目前為止制作了這段代碼: 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);
}我想知道,我應(yīng)該在main中輸入什么,以便我可以調(diào)用該事件?
3 回答

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
對(duì)于控制臺(tái)應(yīng)用程序,您可以執(zhí)行此操作,do while
循環(huán)運(yùn)行直到您按下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); }}
這僅在您的控制臺(tái)應(yīng)用程序具有焦點(diǎn)時(shí)才有效。如果要收集系統(tǒng)范圍的按鍵事件,可以使用Windows掛鉤

紅顏莎娜
TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
另一個(gè)解決方案,我用它來進(jìn)行基于文本的冒險(xiǎn)。
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 關(guān)注
- 576 瀏覽
添加回答
舉報(bào)
0/150
提交
取消