跟随 ( 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/