python3.3向visualboy Advan发送密钥

2024-06-26 14:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

在(http://win32com.goermezer.de/content/view/136/254/)之后,我能够加载一个程序,获得对该程序的关注,但是我不能将实际的键发送到模拟中,就像它发送到窗口而不是在模拟中一样。在

我使用的代码如下:

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

在我尝试发送{DOWN}之前,这一切都是有效的,我也尝试过“z”,它不会在窗口内部发送,即使它向任何其他应用程序发送fine。有什么想法吗?提前谢谢。在


Tags: 代码import程序clientviewhttpdecontent
1条回答
网友
1楼 · 发布于 2024-06-26 14:39:48

问题是SendKey与直接输入不兼容,为了克服这个问题,我使用win32api的keybd_事件进行直接输入

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')

相关问题 更多 >