将键盘宏命令发送到游戏窗口
我想为游戏做一个宏程序。 但是仅将密钥发送到游戏应用程序(游戏窗口)存在问题。 我正在使用 keybd_event
API 将密钥发送到游戏窗口。 但我只想在宏程序运行时将密钥发送到游戏窗口,而不是发送到资源管理器或任何打开的窗口。 当我更换窗口时,它仍在发送密钥。 我尝试将 Interaction.App
与 Visual Basic.dll
引用一起使用。 但是 Interaction.App 只聚焦游戏窗口。
我找不到任何有关我的问题的信息。 谁能帮我? 谢谢
I wanna do a macro program for a game. But there is a problem with sending keys to only game application (game window). I am using keybd_event
API for sending keys to game window. But I only want to send keys to the game window, not to explorer or any opened window while my macro program is running. When I changed windows its still sending keys. I tried to use Interaction.App
with Visual Basic.dll
reference. But Interaction.App
only Focus the game window.
I couldn't find anything about my problem. Can anyone help me? Thanx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我解决了我的问题。
在这个领域里 ;
PostMessage(hWnd, WM_KEYDOWN, key, {必须给出按键的 lParam});
否则不起作用。我们可以使用微软的Spy++工具来控制ChildWindow类。
感谢大家的帮助。
i fixed my problem.
in this field ;
PostMessage(hWnd, WM_KEYDOWN, key, {have to give lParam of the key});
otherwise it does not work.And we can control of ChildWindow Class with Spy++ tool of Microsoft.
Thanks everyone for helping.
您是否一直在检索窗口的句柄,或者您是否记得它?
如果您使用 FindWindow() API,您可以简单地存储 Handle 并使用 SendMessage API 手动发送键/鼠标事件。
Are you retrieving the handle of the window all the time, or are you remembering it?
If you use the FindWindow() API, you can simply store the Handle and use the SendMessage API to send key/mouse events manually.
FindWindow API:
http://www.pinvoke.net/default.aspx/user32.FindWindowEx
发送消息API:
http://www.pinvoke.net/default.aspx/user32/SendMessage。 html
VB
C#
FindWindow API:
http://www.pinvoke.net/default.aspx/user32.FindWindowEx
SendMessage API:
http://www.pinvoke.net/default.aspx/user32/SendMessage.html
VB
C#
调用代码
Calling Code
如果您想与游戏进行通信,通常必须处理 DirectInput,而不是普通的键盘 API。
If you want to communicate with a game, you typically will have to deal with DirectInput, not the normal keyboard API's.