How to send keystrokes/messages to Windows 7 with C++ and Windows API?

蓝咒 提交于 2019-11-30 19:05:45

问题


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).



来源:https://stackoverflow.com/questions/9190105/how-to-send-keystrokes-messages-to-windows-7-with-c-and-windows-api

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