我想创build一个应用程序。 当用户按下键盘上的特殊键或/并使用滚轮时,此应用程序必须执行某些操作。 这个应用程序是一个服务。 它没有窗户。 我想捕捉任何与其他应用程序devise的键盘或鼠标事件。
例如,您正在通过第三方应用程序观看电视。 如果按Ctrl + Shift
并使用滚轮,我的应用程序将更改音量。
我使用Windows 7 x64和Visual Studio 2008。
您可以调用SetWindowsHookEx()以在发生各种事件时得到通知。 您可能想要使用键盘钩子和鼠标钩子来观察鼠标事件。
如果您的应用程序是真正的Win32服务,那么在Vista及更高版本上,应用程序将不会收到键盘或鼠标事件 – 关闭安全漏洞(搜索“破解攻击”),Microsoft隔离所有服务以防止它们与用户。
您需要让交互式登录的用户在应用程序中运行应用程序。
您可以使用RAW INPUT方法,它比GetAsyncKeyState等更可靠。
我在Code Project上写了这篇文章 ,可能对你有用。
有C#和一个MASM源代码版本可用。