如何使控制台应用程序侦听来自其他进程的按键?

时间:2017-05-31 07:53:30

标签: c#

我是C#编程的新手,我试图编写一个将在后台运行并在按下某个键时执行操作的控制台应用程序(理想情况下我想知道如何执行此操作对于任何密钥,但如果不可能,则为特定密钥。)

这里有一个我想要的想法(请原谅并随时纠正任何不良编码,因为我刚刚开始)。

public static void Main(string[] args)
{
    while(true)
    {
         ConsoleKeyInfo cki = Console.ReadKey();
         if( cki.Key == ConsoleKey.R )
         {
              Console.WriteLine("Run me");
         }
     }
 }

以上似乎有效,但前提是控制台应用程序是焦点。即使应用程序没有成为焦点,我也希望它能够实现。

我做了一些研究并阅读了有关注册热键的信息。但是还要知道,如果另一个应用程序需要该密钥,这是危险的吗?

我也在这里阅读了类似的问题,但它们似乎只涉及Windows Forms而不仅仅是Console Apps。

任何人都可以帮忙解释一下吗?

1 个答案:

答案 0 :(得分:0)

您需要使用

regedit

但要使其在控制台上运行,您需要创建隐藏的表单,以便为您处理消息。查看this class。它完全符合你的要求。