C# 监听键盘组合

use*_*033 3 c# keyboard-events winforms

我想编写简单的代码program,在某些地方发送我的用户和密码,例如当我想登录网站时,我发现了这个项目正在听键盘。

所以我有这个功能:

private void HookManager_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{

}

private void HookManager_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{

}

private void HookManager_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{

}
Run Code Online (Sandbox Code Playgroud)

例如,当我按下 键时,a我会得到这样的结果:

int value = e.KeyValue; // 65
Keys key = e.KeyCode;   // A
Run Code Online (Sandbox Code Playgroud)

所以我想知道如何捕获特定的keyboard combination而不是仅一个key的例子Ctrl + l

小智 5

您可以对 KeyDown 使用如下代码:

if(e.KeyCode == Keys.F1 && (e.Alt || e.Control || e.Shift))
{
}
Run Code Online (Sandbox Code Playgroud)

基于MSDN 的KeyEventArgs文档:

KeyEventArgs 与每个 KeyDown 或 KeyUp 事件一起传递,它指定用户按下的键以及是否同时按下任何修改键(CTRL、ALT 和 SHIFT)。

当用户按下任意键时,将发生 KeyDown 事件。当用户释放按键时,KeyUp 事件发生。如果按住该键,则每次重复按键时都会发生重复的 KeyDown 事件,但当用户释放该键时仅生成一个 KeyUp 事件。

当按下某个键时也会发生 KeyPress 事件。KeyPressEventArgs 与每个 KeyPress 事件一起传递,并指定作为每次按键的结果而组成的字符。