【问题标题】:C# Console Application Keypress capturingC# 控制台应用程序按键捕获
【发布时间】:2015-02-05 22:53:07
【问题描述】:

是否可以通过Console.ReadKey()以外的任何其他方式检查控制台应用程序中的按键?

我已将项目设置更改为 Windows 应用程序,这样控制台窗口就不会显示了。但是如果没有显示控制台窗口,应用程序就会崩溃,因为Console.ReadKey() 需要控制台窗口。有什么解决办法吗?

注意: 我不想打开任何窗口,只需通过线程跟踪按键。

【问题讨论】:

  • 即使你的程序被最小化,你也想捕获按键,在这种情况下你必须去低级windows api编程
  • 当我想要一个没有 UI 的可执行文件时,我的标准是使用 WinForms 而不显示表单,而不是使用控制台应用程序而不显示控制台。

标签: c# multithreading console keypress readkey


【解决方案1】:

如果您没有窗口,您将无法接收按键事件。你必须有一个控制台或“桌面”窗口。

在控制台“Console.ReadKey()”的情况下完成这项工作,在 WPF 或 Windows 窗体“KeyPressed”事件的情况下完成这项工作。

【讨论】:

  • 除非你非常可以。有很多方法可以监听全局键盘事件,不管你有没有窗口。
  • 它是热键,它们不是在“您的应用程序”中按下的
  • 有热键,它们是由操作系统管理的,可由适当的 Windows API 使用。还有全局钩子,它们不是热键,而是简单的“全局键事件”监听器。此外,OP 的要求不是捕获“在您的应用程序中”按下的键,而是捕获按下的键(如果 OP 首先没有窗口,很明显他的意思是全局) .
猜你喜欢
  • 1970-01-01
  • 2015-06-07
  • 2010-09-16
  • 2020-12-05
  • 2012-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多