PostMessage到DirectX9 -Game角色,它甚至可能吗?

时间:2015-02-11 15:31:11

标签: visual-c++ directx mouseevent keyboard-events postmessage

我花了几天的时间试图将鼠标点击和键盘印象推入DirectX9游戏。到目前为止,我已经能够使用登录屏幕的用户/密码字段。 Clicks和KB事件正在运行。 现在,当游戏登录到服务器时,华丽的游戏介绍出现,然后几秒钟后,实际的游戏UI可见。文本框,聊天窗口等是可见的。 我可以将点击发送到聊天窗口,按回车键,输入ascii chars。等等 但我似乎无法点击实际的游戏角色",或使用键盘来控制角色的移动。

经过大量的搜索,我陷入了困境。 DirectX会尊重我的click / KB事件吗?这有解决方法吗?我知道人们会强迫我使用SendInput() - 我的问题是游戏窗口被最小化所以我不能使用SendInput(),但我怀疑PostMessage(gameWndHandle,WM_XXXXX,WPARAM,LPARAM)的参数,特别是WM_XXXXX没有被强迫"与DirectX的那些,这意味着我的简单点击被简单地丢弃。

为了简洁起见。我使用以下

gameWndHandle = FindWindow("MyGame")
PostMessage(gameWndHandle,WM_KEYDOWN,(TCHAR)'a',NULL); // Works for chat box, not for a game character

PostMessage(gameWndHandle,MK_LBUTTON,NULL,MAKELPARAM(mouseX,mouseY)); // Works for chat box, not for a game character

我相信有人必须破解这个。这有API吗?我的意思是任何API伙伴?我希望有人可以提供工作样本的链接。似乎没有人喜欢分享:)我猜想最有可能是一个钩子是最终的解决方案!

1 个答案:

答案 0 :(得分:0)

尝试使用SendInput功能。

  

SendInput函数将INPUT结构中的事件串行插入键盘或鼠标输入流。