【发布时间】:2014-10-07 20:04:06
【问题描述】:
我编写了以下一段代码来显示所有击键。我想知道的是,如果我按 Ctrl+A、Alt+O 或 等组合键>Ctrl+Delete 或 Ctrl+Alt+Delete 这些键也会显示在控制台上。应该怎么做?
另一件突然想到的事情是,如果有人按住一个键并继续按下另一个键,如何在这里捕捉到这种行为?
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(Int32 i);
for (Int32 i = 0; i < 255; i++)
{
int keyState = GetAsyncKeyState(i);
if (keyState == 1 || keyState == -32767)
{
Console.WriteLine((Keys)i);
break;
}
}
【问题讨论】:
-
是的,我读到了,但对于像我这样的傻瓜来说这很神秘。实际上,win32 API 对我来说看起来很可怕。我计划一遍又一遍地阅读,然后决定把我的代码扔到垃圾中,但后来我认为有 stackoverflow 可以帮助我。
-
@khan,那么你必须培养理解文档所需的背景和技能,否则你没有机会理解实际代码的作用。
-
我不确定您要做什么?您是否尝试从后台应用程序读取键盘状态?
-
@Black Frog 不,只是一个控制台应用程序。
标签: c# .net keyboard console-application