我正在尝试使用以下cpp语法捕获c#中的shift + tab:
if (GetAsyncKeyState(VK_SHIFT) & 0x8000)
{
// The key is currently down
}
Run Code Online (Sandbox Code Playgroud)
有人能指出我的c#等价物吗?
谢谢,德鲁
语法几乎完全相同.
你需要声明这样的GetAsyncKeyState方法:
[DllImport("user32.dll")]
static extern int GetAsyncKeyState(System.Windows.Forms.Keys vKey);
Run Code Online (Sandbox Code Playgroud)
而不是VK_SHIFT,你可以写Keys.Shift
此外,C#不会被非法转换int为bool,因此您需要将其与之进行比较0.
因此,你需要写
if ((GetAsyncKeyState(Keys.Shift) & 0x8000) != 0)
Run Code Online (Sandbox Code Playgroud)
你可以通过检查没有P/Invoke来做到这一点Control.ModifierKeys.
| 归档时间: |
|
| 查看次数: |
1575 次 |
| 最近记录: |