我正在玩人类革命的deus,你可以使用正确的4位数代码访问。
我想知道你是否可以制作一个剧本来强制它向游戏发送击键。 我尝试使用发送密钥,但我无法使其工作。任何想法?谢谢。
-SendKeys
这是我试过的,我在这里找到了:
import win32com.client
import time
import SendKeys
import os
from ctypes import *
shell = win32com.client.Dispatch("WScript.Shell")
os.startfile('C:\\....exe')
time.sleep( 150 )
shell.SendKeys('1')
我最初尝试的方式是使用脚本打开游戏,加载保存游戏时间延迟,然后我打开一个终端来破解它,但密钥不会发送。
-pywinauto:
使用pywinauto我有这个:
from pywinauto import application
import time
app=application.Application()
app.connect_(title_re = "Deus Ex: Human Revolution - The Missing Link", class_name = "DeusExHRE")
现在我正在搜索哪些对话框可用。
所以除了python,我正在尝试使用AutoHotKeys:
这有效:
SetKeyDelay 180
F12::
Send {0 down}
Send {0 up}
Send {0 down}
Send {0 up}
Send {0 down}
Send {0 up}
Send {0 down}
Send {0 up}
Send {Backspace down}
Send {Backspace up}
Return
keydelay是我发现的最小值,它没有错过任何按钮。我正在寻找一种方法,使其更快,可能使用不同的发送方法。
已更新:
-pywinauto -autohotkeys
答案 0 :(得分:3)
你有没有试过this?
答案 1 :(得分:1)
您可能已经考虑过这一点,但为了以防万一,请确保您在几个地方尝试解决方案。 IIRC,在Deus Ex中有几个地方你必须在使用之前发现游戏中的代码,即使代码本身已经硬连接到游戏中。
如果你有自动完成黑客迷你游戏的话,真的很酷。 :)
答案 2 :(得分:0)
晚了几年,但无论如何回答,都可能会遇到和我一样的问题……
在Windows中,您可以使用win32api将密钥发送到活动的应用程序,但是您还必须为其提供扫描代码,以使其能够在某些类型的应用程序(例如游戏)中运行
要发送单个密钥,您必须拥有virtual key code才能通过 使用解决方案Here或拥有字典(您可以轻松地在Google中找到完成的内容或自己动手做)
import win32api, time
# in this example i'm using a dictionary (that i called VK_CODE)
# to map the keys to their respective virtual key codes
# Sending the key a
i = 'a'
# send key down event
win32api.keybd_event(VK_CODE[i], win32api.MapVirtualKey(VK_CODE[i], 0), 0, 0)
# wait for it to get registered.
# You might need to increase this time for some applications
time.sleep(.05)
# send key up event
win32api.keybd_event(VK_CODE[i], win32api.MapVirtualKey(VK_CODE[i], 0), win32con.KEYEVENTF_KEYUP, 0)