【发布时间】:2014-09-04 08:27:45
【问题描述】:
一年来我一直在尝试各种事情。我是python的初学者。在 Project Euler 中完成了前两个问题。
我尝试了几种方法来尝试模拟我玩的游戏中的按键。我可以使用自动热键和宏键盘/鼠标轻松做到这一点。但是,我想通过 Python 或 C 来完成。
我的猜测是win32 api在视频游戏中被忽略了,我需要通过Direct X模拟按键。
提前谢谢你。这是我最近的尝试……失败了。
每次运行新的游戏实例时,我都必须抓住/更改手柄。
我的模拟键可以在浏览器和记事本中使用,但不能在游戏中使用。不工作,我的意思是没有用户输入。
以下代码将切换到窗口,但不会模拟用户的输入。
import pywinauto
import time
from pywinauto import application
app = application.Application()
app.connect_(handle = 0x14002a)
dialogs = app.windows_(handle = 0x14002a)
dlg = app.top_window_()
time.sleep(1)
app.MapleStory.TypeKeys("%A")
time.sleep(1)
app.MapleStory.TypeKeys("%A")
time.sleep(1)
app.MapleStory.TypeKeys("%A")
time.sleep(1)
app.MapleStory.TypeKeys("%A")
time.sleep(1)
app.MapleStory.TypeKeys("%A")
time.sleep(1)
app.MapleStory.TypeKeys("%A")
【问题讨论】:
-
虽然自动化游戏被认为是不道德的,你可以在这里找到一个教程:code.tutsplus.com/tutorials/…
-
谢谢。我可以看到自动化游戏是多么不道德,有人会皱眉教我这样的方法。我已经可以使用像 autohotkey 这样的工具来自动化游戏,但让我着迷的是人们如何创建像 autohotkey 这样的软件。我的下一个实验将是使用 PYAHK 来查看它是否适用于游戏,但是,这并不能让我满意。我想尝试并创建可以模拟按键和自动热键的软件。也谢谢你的链接。我在一段时间前完成了它并学到了很多东西。但是,该示例中的击键在 DirectX 游戏中会被忽略。
-
我刚刚得知该游戏有一个阻止发送键的反作弊系统。我很庆幸我学会了以多种方式模拟击键。现在我必须弄清楚如何解决这个新/旧问题......
-
刚刚找到这个。也许这将允许我通过 C 或不使用 AHK 来完成它!!!! autohotkey.com/board/topic/101542-controlsend-buggy