【发布时间】:2016-10-01 16:44:24
【问题描述】:
这是我以前遇到过的问题,但我总是放弃解决问题并找到解决方法。不是今天(希望如此)。
我正在尝试为经典的 Doom II 制作一个机器人。我希望我的机器人能够访问通过退出键访问的主菜单。我自然试过了:
sendkeys.send("{ESC}")
运气不好。但随后奇怪的事情发生了。当我已经在菜单上时,我不小心运行了代码......它关闭了菜单(如果您在菜单上按 Escape 是正常的)。很明显 Doom II 听的是 Sendkeys。
我已经尝试过sendinput、postmessage 和simulateinput。没有一个起作用(它们都具有与 sendkeys 描述的相同的行为)。
如果有人能骑着白马过来,给我代码来解决这个问题,那就太好了,但除此之外,任何人都可以简单地向我解释这种行为吗?
【问题讨论】:
-
啊,Doom II...一个古老的经典...我真的很喜欢那个游戏:)。 -- 题外话,你是在运行 Doom II 的 DOS 版本还是 Windows 95 版本?因为如果您使用的是 DOS 模拟器,问题可能出在 DOS 模拟器上。
-
@visualVincent 这真的是一部经典之作,可惜我太不擅长了!我实际上正在使用 Zandronum 运行它。我一辈子都想不通为什么逃生会关闭菜单但不会打开它!
-
那很好,因为我也用 Zandronum!如果你会说 DOS,我会更难提供帮助,因为我只有 Doom95 和 Zan。 -- 我将尝试使用
SendKeys和SendInput。你是在全屏模式还是窗口模式下运行? -
@FraserOfSmeg 在游戏中,游戏可能会测试键盘状态而不是处理 Windows 消息。
-
@AndrewMorton :我相信确实如此,它在 OpenGL 或经典软件渲染器上运行(您可以自己选择渲染器)。无论哪种方式
SendInput应该工作。
标签: vb.net sendkeys postmessage sendinput