【问题标题】:C# console get key strokeC#控制台获取按键
【发布时间】:2012-03-23 15:06:49
【问题描述】:

C# 控制台应用程序是否可以捕获击键,包括在程序外部按下的击键,类似于键盘记录器?我找到并尝试过的是 Console.ReadKey() 但它只能读取发送到控制台的击​​键。

【问题讨论】:

标签: c# .net console keystroke keylogger


【解决方案1】:

您需要使用低级键盘挂钩。这是一个使用 Windows 窗体的示例,但您可以轻松地将相同的概念应用于控制台应用程序:

http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx

希望对你有帮助!

【讨论】:

  • 它能帮我捕捉组合键吗,比如 Ctrl + C 或 Ctrl + Alt + Delete?
  • 不幸的是,要处理 Ctrl + Alt + Delete,您必须用 C 或 C++ 编写自己的 GINA 实现 msdn.microsoft.com/en-us/library/aa380543%28VS.85%29.aspx
  • 谢谢。不过我还有其他问题要问:我怎样才能做到,如果用户按住某个按钮一段时间,而不是连续多次显示该按钮(如“AAAAAAAAAAAAAAA”),它只会显示一次(显示“A”只有一次)。
【解决方案2】:

您必须处理全局键盘事件。看看A Simple C# Global Low Level Keyboard Hook

【讨论】:

    【解决方案3】:

    你需要使用 Windows API,我会check GetAsyncKeyState

    【讨论】:

      【解决方案4】:

      是的...您需要查看系统键盘挂钩...我认为这篇文章有您需要的内容:

      Global keyboard capture in C# application

      【讨论】:

      • 它能帮我捕捉组合键吗,比如 Ctrl + C 或 Ctrl + Alt + Delete?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多