在Windows C++中,键盘钩子是什么?

3
我希望构建一个可以向Windows操作系统发送键盘命令(信息)的应用程序。
例如,当我按下组合键ctrl+shift+n时,我希望启动notepad.exe。我该怎么做?您有关于使用的概念的建议吗?
我已经了解到在使用键盘钩子时可以实现这一点。这是唯一的方法吗?您知道一个简单免费且开源的应用程序吗?
3个回答

3

您的特定示例可以完全不需要编程,只需右键单击记事本,选择属性,并将“热键”(不同版本的Windows可能会使用不同的名称)设置为Ctrl + Shift + N。

如果您仍然想编写程序来完成此操作,请查看RegisterHotKey Win32 API函数。


谢谢,但我真的希望自己写这个程序 :) - dole doug

3

AutoHotkey是一个免费的、开源的Windows实用程序。
您可以使用上述实用程序自动化许多任务,赶紧试试吧。


2
需要翻译的内容如下:

需要注意的事项:

系统范围的键盘钩子需要编写DLL。我的网站上有示例键盘钩子代码,在这里

在Vista和Windows 7/8/10中,无法从低完整性级别应用程序安装钩子。因此,取决于按键时前台应用程序是什么,无法保证您的钩子将起作用。

正如Greg所指出的那样,很多时候,RegisterHotKey是解决此问题的更简单的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接