我正在尝试使用以下cpp语法捕获c#中的shift + tab:
if (GetAsyncKeyState(VK_SHIFT) & 0x8000)
{
// The key is currently down
}
有人能指出我的c#等价物吗?
谢谢, 德鲁
答案 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。