我花了几天的时间试图将鼠标点击和键盘印象推入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伙伴?我希望有人可以提供工作样本的链接。似乎没有人喜欢分享:)我猜想最有可能是一个钩子是最终的解决方案!