一尘不染

捕获窗体外的鼠标/键盘事件(应用程序在后台运行)

c#

我有一个在后台运行的应用程序(最小化/任务栏)。我需要能够检测鼠标活动(单击,移动)以及键盘活动。

考虑到我的窗口未“聚焦”的约束,最好的方法是什么?


阅读 501

收藏
2020-05-19

共1个答案

一尘不染

神奇的词是窗户钩。这些是通过ap /
invoke调用创建的SetWindowsHookEx。您可以设置一个钩子来监视键盘和鼠标事件等。通常,此类挂钩对于应用程序而言是本地的,但您也可以创建全局挂钩。Microsoft
KB 显示了如何。

但是,请注意,.NET不能使用所有类型的全局挂钩。特别是,您 只能 使用两种: 低级
键盘和鼠标挂钩,称为WH_KEYBOARD_LLWH_MOUSE_LL。幸运的是,这些正是您所需要的。

2020-05-19