gpt4 book ai didi

c# - 检查是否按下了 3 个键

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:15 24 4
gpt4 key购买 nike

我正在使用 Visual Studio 2010 在 C# 中制作一个应用程序。它是一个 Windows 窗体应用程序

我想做的是在按下 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.");
}
}

所以我的问题是,我如何检查所有树键是否同时按下?

或者,如果您知道制作这样一个热键的更好方法,那会怎么样?

最佳答案

在 CTRL+SHIFT+X 的情况下,只有 X 才是真正的正确键;其他的是“修饰符”键。因此无需中断 P/Invoke :-) 只需在您的 Key_Down 处理程序中执行此操作即可:

if (e.KeyCode == Keys.X && e.Control && e.Shift) {
// CTRL+SHIFT+X was pressed!
}

关于c# - 检查是否按下了 3 个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13536187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com