我想创建一个应用程序。当用户按下特殊键盘或/和使用滚轮时,这个应用程序需要执行某些操作。该应用程序是一个服务,没有窗口。我希望捕获其他应用程序设计的任何键盘或鼠标事件。 例如,您正在通过第三方应用程序观看电视。如果您按下 Ctrl + Shift 并使用滚轮,我的应用程序将更改音量。 我使用Windows 7 x64和Visual Studio 2008。
如果你的应用程序是真正的Win32服务,则在Vista及更高版本上,该应用程序将不会接收键盘或鼠标事件 - 为了关闭一个安全漏洞(搜索“shatter attack”),微软隔离了所有服务以防止它们与用户交互。您需要让您的应用程序在与交互登录的用户相同的会话中运行。
hhk=::SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc1, 0, 0);
,但是没有起作用。你能给我更多信息吗? - Alexey Malistov