Python 3.3 将 key 发送到 Visual Boy Advance

标签 python python-3.x python-3.3 sendkeys

跟随 ( http://win32com.goermezer.de/content/view/136/254/ ) 我能够加载一个程序,专注于该程序,但是我无法将实际的 key 发送到仿真中,就像它发送到窗口而不是内部仿真。

我使用的代码是这样的:

import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.Run("Silver.gbc")
shell.AppActivate("VisualBoyAdvance")
shell.SendKeys("{DOWN}")

在我尝试发送 {DOWN} 之前一切正常,我也尝试了“z”并且它不会在窗口内发送,即使它可以正常发送到任何其他应用程序。有任何想法吗?提前致谢。

最佳答案

问题是 SendKey 与直接输入不兼容,为了解决这个问题,我使用 win32api 的 keybd_event 进行直接输入

VK_CODE = {
    'backspace':0x08
}

def press(*args):
    '''
    press, release
    eg press('x', 'y', 'z')
    '''
    for i in args:
        win32api.keybd_event(VK_CODE[i], 0, 0, 0)
        time.sleep(0.2)
        win32api.keybd_event(VK_CODE[i],0 ,win32con.KEYEVENTF_KEYUP ,0)

press('backspace')

关于Python 3.3 将 key 发送到 Visual Boy Advance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21858357/

相关文章:

python - 并非所有排列都包括[itertools,排列]

python - 如何在tensorflow中查找给定.ckpt.meta文件的输出节点名称

python - 反转列表中的字符串并进一步反转嵌套列表中的列表

python - 在 Python unicode 字符串中删除重音符号(规范化)的最佳方法是什么?

python-3.x - 选择 DF 中的特定列和随机列(python3、pandas)

python - 使用字典,练习代码

Python:如何将初始质心放在k-means中的特定数据点上?

python - 如何从 "year","date","month","time"列生成unix时间列,最好使用python的pandas模块

python - 访问嵌套字典中的值

python - 创建文本文件(如果它们尚不存在)