English 中文(简体)
keyboard hook in windows C++ or what?
原标题:

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?

问题回答

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.

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

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.





相关问题
Why running a service as Local System is bad on windows?

I am trying to find out the difference between difference service account types. I tumbled upon this question. The answer was because it has powerful access to local resources, and Network Service ...

Programmatically detect Windows cluster configuration?

Does anyone know how to programatically detect that a Windows server is part of a cluster? Further, is it possible to detect that the server is the active or passive node? [Edit] And detect it from ...

get file icon for Outlook appointment (.msg)

I ve read Get File Icon used by Shell and the other similar posts - and already use SHFileInfo to get the associated icon for any given extension, and that works great. However, Outlook uses ".msg" ...

Identifying idle state on a windows machine

I know about the GetLastInputInfo method but that would only give me the duration since last user input - keyboard or mouse. If a user input was last received 10 minutes ago, that wouldn t mean the ...

Terminating a thread gracefully not using TerminateThread()

My application creates a thread and that runs in the background all the time. I can only terminate the thread manually, not from within the thread callback function. At the moment I am using ...

热门标签