我一直在尝试使用.NET框架中的Windows.Input.Keyboard命名空间在我的程序没有焦点时从键盘捕获输入,但是我编译并调试它,抛出InvalidOperationException并告诉我" 调用线程必须是STA "当我试图检查按键的按下状态时 现在我对这个线程业务了解不多,但我只能假设一个控制台程序不能作为STA线程运行,在这种情况下这意味着我必须制作一个Forms或其他类型的除控制台程序以外的应用程序?或者是否有更友好的方式通过我还没有听说过的不同.NET Framework命名空间中的控制台程序来实现它?
tl; dr 如果我的控制台程序记录它们没有成为焦点,我怎样才能获得发生的按键?
答案 0 :(得分:0)
不知道如何标记为重复但是这个人:
How can I make my Windows Forms application 'listen' for global key presses?
之前回答了这个问题;) 首先使用Global Hook进行c#。对我来说非常好用