关键事件+修改键无法正常工作

时间:2016-08-03 04:58:12

标签: c# wpf mousekeyhook

我已经看到无数的帖子和文章声称要做我希望他们为我做的事情,遗憾的是他们没有给我一个解决方案或帮助我到目前为止。

你知道,我正在使用: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;依旧......)但正如你所看到的,它最终会让任务变得太乏味......你会建议你为这个特殊情况做些什么。

更新#1

好的,所以我继续挖掘,这使它成功,我不知道如何,但它只是做到了

现在我遇到了一个小问题...为了注册按键,我必须按两次目标键......或者甚至按另一个键然后返回目标键然后再按将注册,像某种延迟,让我解释一下......

我想按 CTRL + A 我点击 CTRL + A ,它没有&#39;做任何事情,但是如果我按 CTRL + B ,它似乎没有做任何事情而且它什么也没有显示,但是如果我按 CTRL + B 然后回到 CTRL + A ,它正确显示 CTRL + A ,希望你能理解我......现在我不知道发生了什么,但我正在深入挖掘,如果你碰巧知道,请与我分享,这将是真的有帮助:D

干杯!

0 个答案:

没有答案