如何在我的应用程序外检测多键按键盘快捷键

时间:2015-01-16 19:13:54

标签: c# winforms system keydown hotkeys

我正在尝试扩展热键 CTRL + N ,这样如果用户按下 CTRL + N 它会生成一个新文件,但是如果它们保持 CTRL 并再次按N,则会打开一个新的记事本实例。

这是我得到的伪代码:

event Key_Down(CTRL)
{
   while(key_Down(CTRL)
   {
    if(Key_isPressed('N')){Ncount++;}
   }
}
event Key_UP(CTRL)
{
    do{
       if(Ncount == 1)
       {
          Create New File to Current Location
       }
       else if(Ncount == 2)
       {
          Open Notepad;
       }
       else if(Ncount >2)
       {
         Ncount=Ncount/2;
       }
    }(while Ncount>2);
 }

我不确定如何在C#中使用这样的词语,但我想要它,这样即使程序没有焦点也会引发这些事件(即在后台,最小化,作为服务运行w) / o GUI等...)

1 个答案:

答案 0 :(得分:2)

你需要一个"键盘钩"。该项目将教你如何制作一个:http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook