我已经看到无数的帖子和文章声称要做我希望他们为我做的事情,遗憾的是他们没有给我一个解决方案或帮助我到目前为止。
你知道,我正在使用:https://github.com/gmamaladze/globalmousekeyhook作为键盘钩......
现在Usage解释了 GlobalHookKeyPress 事件,我试图实施:
if ((Control.ModifierKeys & Keys.Control) == Keys.Control) { textBlock.Text = string.Format("CTRL + {0}", e.KeyChar); }
捕获 CTRL +<'将捕获的KeyCode置于此处'> (例如 CTRL + A ),但是,当我这样做时,它只是写" CTRL +"到textBlock,而不是捕获的Key ...现在,如果我尝试改为:
int key = Convert.ToInt32(e.KeyChar); if ((Control.ModifierKeys & Keys.Control) == Keys.Control) { textBlock.Text = string.Format("CTRL + {0}", key); }
它正确地写了 CTRL +" KeyCode"然而,它给了我正确的,但在其数字"形式,现在,我必须做什么才能使它成为" CTRL + A ",而不是" CTRL + 1 "?
我尝试过一种方式,但它似乎过于复杂,可能没用,因为可以有更好的方法来实现我所寻找的东西,这就是我所做的:
int key = Convert.ToInt32(e.KeyChar);
if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
{
switch (key)
{
case 1:
textBlock.Text = "CTRL + A";
break;
...
default:
break;
}
}
现在,我的想法是在哪里看到 ... 显然继续写作(案例19代表&#34; CTRL + S < / kbd>&#34;依旧......)但正如你所看到的,它最终会让任务变得太乏味......你会建议你为这个特殊情况做些什么。
好的,所以我继续挖掘,这使它成功,我不知道如何,但它只是做到了
现在我遇到了一个小问题...为了注册按键,我必须按两次目标键......或者甚至按另一个键然后返回目标键然后再按将注册,像某种延迟,让我解释一下......
我想按 CTRL + A 我点击 CTRL + A ,它没有&#39;做任何事情,但是如果我按 CTRL + B ,它似乎没有做任何事情而且它什么也没有显示,但是如果我按 CTRL + B 然后回到 CTRL + A ,它正确显示 CTRL + A ,希望你能理解我......现在我不知道发生了什么,但我正在深入挖掘,如果你碰巧知道,请与我分享,这将是真的有帮助:D
干杯!