我正在尝试模拟某个游戏上的击键(当它的窗口没有聚焦时),这会让我的角色按照我告诉他的方式移动。 我试过用:
PostMessage(Process.GetProcessById(PID).MainWindowHandle,WM_KEYDOWN,0x2d,0x1520001);
使用INSERT键可以正常工作。但是,在尝试模拟箭头键(右键)时:
PostMessage(Process.GetProcessById(PID).MainWindowHandle,WM_KEYDOWN,0x27,0x14d0001);
它没有按照我的预期工作。我的角色没有移动,但是当我关注聊天框游戏时(虽然游戏本身不聚焦),我可以看到标记在聊天框中向右移动。
*注意:我可以使用InputSimulator类模拟箭头键:
InputSimulator.SimulateKeyDown(VirtualKeyCode.RIGHT);
^非常适合移动我的角色/使用聊天框,但唯一的问题是,要使SimulateKeyDown工作,必须关注特定窗口,这不是我正在寻找的。 p>
我一直在寻找一段时间而未能找到答案,我希望有人能帮我解决这个问题。感谢。
答案 0 :(得分:0)
尝试在向下/向上组合中发布关键事件。例如:
PostMessage(Process.GetProcessById(PID).MainWindowHandle, WM_KEYDOWN, ...);
PostMessage(Process.GetProcessById(PID).MainWindowHandle, WM_KEYUP, ...);
// Or use a single PostMessage call with a combination of KEYDOWN/KEYUP flags.
InputSimulator.SimulateKeyDown(VirtualKeyCode.RIGHT);
InputSimulator.SimulateKeyUp(VirtualKeyCode.RIGHT);