【问题标题】:Listening to keyboard C# (WinForm)听键盘 C# (WinForm)
【发布时间】:2016-03-21 19:42:29
【问题描述】:

我正在编写一个我想在用户“空闲”时运行的程序(即用户没有输入 - 不移动鼠标或输入任何内容)。我已经注意检测鼠标是否正在移动(通过将鼠标位置存储为变量并稍后将当前位置与该变量进行比较),但我不知道如何检测键盘输入。

我知道如果用户自己在表单中输入,我可以使用事件侦听器(KeyDown、KeyPressed 等),但我希望这个程序能够检测计算机上任何程序中的键盘输入。

有没有办法做到这一点?我所有的研究都产生了检查表单内部的方法,但不是全局检查。

注意:不确定这是否重要,但我不在乎用户正在输入什么(按下了什么键)。我只需要知道有键盘活动。

提前致谢!

【问题讨论】:

标签: c# winforms listener keyboard-events


【解决方案1】:

您正在寻找的是一个全局键盘挂钩。

带有解释和来源的示例: here

编辑:就@FᴀʀʜᴀɴAɴᴀᴍ的回答而言,使用GetLastInputInfo作为系统调用(SendInput(),keybd_event()等)都会触发它是不合适的,所以这并不意味着用户在技术上在那里。

【讨论】:

    猜你喜欢
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    • 2010-10-31
    • 2011-07-25
    • 1970-01-01
    • 2011-02-10
    相关资源
    最近更新 更多