在C#中捕获shift + tab按键

时间:2010-02-17 20:27:01

标签: c#

我正在尝试使用以下cpp语法捕获c#中的shift + tab:

if (GetAsyncKeyState(VK_SHIFT) & 0x8000)
{
   // The key is currently down
}

有人能指出我的c#等价物吗?

谢谢, 德鲁

1 个答案:

答案 0 :(得分:7)

语法几乎完全相同。

您需要声明GetAsyncKeyState方法,如下所示:

[DllImport("user32.dll")]
static extern int GetAsyncKeyState(System.Windows.Forms.Keys vKey); 

您可以写VK_SHIFT

而不是Keys.Shift

此外,C#不会将int隐含地转换为bool,因此您需要将其与0进行比较。

因此,您需要编写

if ((GetAsyncKeyState(Keys.Shift) & 0x8000) != 0)

然而,

您可以通过选中Control.ModifierKeys来执行此操作而无需P / Invoke。