keyboard hook in windows C++ or what?

烈酒焚心 提交于 2019-12-23 17:00:45

问题


I wish to build my own application which can send keyboard commands(messages) to the Windows OS.

For example when I press the combination ctrl+shift+n, I wish to launch the notepad.exe . How can I do that? Do you have some advice for me about the concept used.

I've read that is possible when are used keyboard hooks? That's the only way? Do you know a free and open-source application which does this as simple is possible?


回答1:


Your particular example can be done without any programming at all, by right clicking on Notepad, selecting Properties, and setting the "hot key" (various Windows versions might call it by a different name) to Ctrl+Shift+N.

If you still would like to write a program to do this, have a look at the RegisterHotKey Win32 API function.




回答2:


AutoHotkey is a free, open-source utility for Windows.
You can automate many tasks with the above utility, check it out.




回答3:


Things to bear in mind:

A system-wide keyboard hook requires the writing of a DLL. There's example keyboard hook code on my website here.

Hooks cannot be installed from a low to a high integrity level application in Vista and Windows 7/8/10. So there's no guarantee your hook will work, depending upon what the foreground application is when the key gets hit.

As Greg pointed out, a lot of the time, RegisterHotKey is a much simpler solution for this problem.



来源:https://stackoverflow.com/questions/1762377/keyboard-hook-in-windows-c-or-what

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!