我知道有一个Windows窗体的问题,但它不能在控制台中工作,或者至少我不能让它工作。即使控制台没有焦点,我也需要捕获按键。在控制台中捕获没有焦点的按键
回答
您也可以在控制台应用程序中创建全局键盘挂钩。
下面是完整的,工作代码:
http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx
您创建一个控制台应用程序,但必须在参考System.Windows.Forms的这个工作补充。控制台应用程序没有理由不能引用该dll。
我刚刚使用此代码创建了控制台应用程序,并验证了它获取每个按键,无论控制台应用程序是否具有焦点。
EDIT
主线程将运行Application.Run(),直到应用程序退出,例如通过调用Application.Exit()。做其他工作最简单的方法是开始一个新的任务来执行这项工作。下面是来自链接的代码,这是否
public static void Main()
{
var doWork = Task.Run(() =>
{
for (int i = 0; i < 20; i++)
{
Console.WriteLine(i);
Thread.Sleep(1000);
}
Application.Exit(); // Quick exit for demonstration only.
});
_hookID = SetHook(_proc);
Application.Run();
UnhookWindowsHookEx(_hookID);
}
注
可能提供退出控制台应用例如一个装置的Main()的修改后的版本当一个特殊的组合键被按下时,取决于您的具体需求。在
为什么downvote?它回答了这个问题并经过验证可以正常工作。 –
感谢这是完美的 – Oztaco
应用程序卡在Application.Run()行。我如何将这个功能集成到现有的控制台应用程序中,而无需等到按键敲击? –
- 1. 捕获焦点键盘输入C#控制台程序
- 2. 捕获不带焦点的按键
- 3. 控制台窗口不在焦点时忽略按键C++(Windows)
- 4. 捕获我的WPF应用程序中没有焦点的按键事件
- 5. 没有焦点的按键检测
- 6. 控制台获取按键没有Windows消息C++
- 7. GPUImage具有“点对焦”和曝光控制的视频捕获
- 8. pygame捕获键盘事件,当窗口没有焦点
- 9. C#2控件,即使在没有焦点的情况下,都需要捕获不同的按键。
- 10. 捕获jquery按键输入并登录到控制台
- 11. 在没有焦点的情况下在QTreeWidget中捕获keyPressEvent
- 12. 捕获进程的所有控制台
- 13. Firefox。 Firebug的控制台 - 抑制 “获得焦点”, “失去焦点” 的消息
- 14. jquery焦点/焦点按键
- 15. 在TestNG中捕获控制台输出?
- 16. 异常没有显示在控制台,除非明确捕获
- 17. 如何在控制台窗口失去焦点时检测按键
- 18. 控制台使用Tkinter进行焦点时的Python捕获事件
- 19. Powershell - 在PowerShell控制台中捕获鼠标点击事件
- 20. 有没有办法在pygame中控制摄像头焦点?
- 21. 如何监听即使没有焦点时按下的按键
- 22. 在linux控制台捕获关键事件
- 23. 将焦点集中在Windows中的控制台上?
- 24. 如何在控制台中获取按键事件
- 25. 当我的应用程序没有焦点时,如何捕获键盘状态?
- 26. ListView中的焦点控制
- 27. 无法捕获按Ctrl + C在C#控制台应用程序
- 28. c#控制台蛇卡在长按键
- 29. 检测按键在控制台
- 30. 多个EditText - 没有获得焦点,没有软键盘? (Android)
你在计划某种键盘记录? – saluce
“不起作用”不是一个合适的问题描述。完全适用于无法支付的付费客户,对于可能花20秒复制/粘贴他的代码的程序员来说完全不合适。 –
@saluce:全球键盘钩子有很多合法的原因(当然还有非法的)。 –