如何捕捉键盘和鼠标事件?

时间:2010-04-18 23:16:29

标签: c++ windows winapi

我想创建一个应用程序。当用户按下键盘上的特殊键或/并使用滚轮时,此应用程序必须执行某些操作。此应用程序是一项服务。它没有窗户。我想抓住任何使用其他应用程序设计的键盘或鼠标事件。

例如,您正在通过第三方应用程序观看电视节目。如果按Ctrl + Shift并使用滚轮,我的应用程序会更改音量。

我使用的是Windows 7 x64和Visual Studio 2008。

3 个答案:

答案 0 :(得分:4)

您可以在发生各种事件时致电SetWindowsHookEx()以获得通知。您可能希望使用键盘钩子和鼠标钩来观察鼠标事件。

答案 1 :(得分:3)

如果您的应用程序是真正的Win32服务,那么在Vista及更高版本上,应用程序将不会收到键盘或鼠标事件 - 关闭安全漏洞(搜索“粉碎攻击”),Microsoft隔离了所有服务以防止它们与用户互动。

您需要让您的应用程序在交互式登录用户的会话中运行。

答案 2 :(得分:2)

您可以使用RAW INPUT方法,它比GetAsyncKeyState等更可靠。

我在Code Project上写了this article,可能对你有用。

可以使用C#和MASM源代码版本。

相关问题