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