How to send keystrokes/messages to Windows 7 with

2020-03-06 07:15发布

问题:

Is it possible for a program to send keystrokes or messages to Windows 7 (the operating system it's running on) to simulate the effect of a user physically pressing the Windows key on their keyboard, for example; in C++, using the Windows API?

回答1:

The SendInput function has been available for ages, and should do just what you need.



回答2:

Beginners often try to send keys to windows because they think it is the easiest solution. It is sure easy to reply by saying it is possible. Often, after the developer invests a significant amount of time, it becomes complicated. One reason it is complicated is because you must ensure that the control (the textbox or whatever) has the focus. Then you have to do something to get the data processed, such as push a button. You might need to read the window to decide what to do next.

An alternative is to go up a level and try to control anapplication by accessing the controls and their parent (the window). So in other words you can put data into a textbox directly as a string, not by typing keys into it. You can send a BN_CLICKED notification message to the wndow instead of sending an enter key to the button to click the button. You should look for ways to do that type of thing. It is totally possible.

Become familiar with Spy++; it is a tool that can really help you to explore the controls and windows and such.



回答3:

You can do any simulated input using SendInput, however, you are bound by the application integrity level (that is, you cannot inject input into applications that have a higher level than yours).