我有一个在后台运行的应用程序(最小化/任务栏)。我需要能够检测鼠标活动(单击,移动)以及键盘活动。
考虑到我的窗口未“聚焦”的约束,最好的方法是什么?
神奇的词是窗户钩。这些是通过ap / invoke调用创建的SetWindowsHookEx。您可以设置一个钩子来监视键盘和鼠标事件等。通常,此类挂钩对于应用程序而言是本地的,但您也可以创建全局挂钩。Microsoft KB 显示了如何。
SetWindowsHookEx
但是,请注意,.NET不能使用所有类型的全局挂钩。特别是,您 只能 使用两种: 低级 键盘和鼠标挂钩,称为WH_KEYBOARD_LL和WH_MOUSE_LL。幸运的是,这些正是您所需要的。
WH_KEYBOARD_LL
WH_MOUSE_LL