1
我做在C#应用程序中使用Visual Studio 2010中这是一个Windows窗体应用程序检查3个键按下
我想要做的就是当按下3个按键来触发的功能。键是CTRL,SHIFT和X
我有这个代码现在:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
Console.WriteLine(e.KeyValue);
/*
*KeyValue:
*CTRL = 17
*Shift = 16
*X = 88
*/
}
正如你所看到的,它很空。这是因为我不知道它了。
我已经在互联网上找到这段代码,但不知道如何实现它:
[DllImport("user32.dll")]
public static extern int GetKeyboardState(byte[] keystate);
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
byte[] keys = new byte[255];
GetKeyboardState(keys);
if (keys[(int)Keys.Up] == 129 && keys[(int)Keys.Right] == 129)
{
Console.WriteLine("Up Arrow key and Right Arrow key down.");
}
}
所以我给你们的问题是,我怎么能检查所有的树钥匙同时按下?
或者如果你知道一个更好的方法来制作这样一个热键,那会怎么样呢?
谢谢,靠在墙上撞头的后一天......不能相信就这么简单。将在可能时接受答案 – Mathlight
很高兴我能帮到你。在一般的三键情况下(键不是修饰键),你可以通过观察KeyDown和KeyUp中的e.KeyCode来维护你感兴趣的键的状态;那么如果所有三个人都被按下,当最后一个人被按下时,你会知道其他人是否被按下(并且还没有被释放)。 – Cameron
谢谢你最后一块额外的信息^^ – Mathlight