python模拟键盘输入的问题

这是一段自动登录QQ的代码,我感觉是def an()出了问题,但是我看不出问题在哪儿。

import subprocess
import win32api
import win32con
import time

from ctypes import *

qq_exe = r"D:\qq\Bin\QQ.exe"
subprocess.Popen([qq_exe])      #打开QQ
time.sleep(5)

windll.user32.SetCursorPos(969, 583)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)      #点击账号输入框
time.sleep(0.5)

def an(qq):
    for i in qq:
        #print(i)
        win32api.keybd_event(ord(i),0,0,0) 
        win32api.keybd_event(ord(i),0,win32con.KEYEVENIF_KEYUP,0)
        time.sleep(0.5)

an("********")      #输入账号

win32api.keybd_event(9,0,0,0)
win32api.keybd_event(9,0,win32con.KEYEVENIF_KEYUP,0)    #Tab

an("**********")    #输入密码
win32api.keybd_event(13,0,0,0)
win32api.keybd_event(13,0,win32con.KEYEVENIF_KEYUP,0)

错误提示是

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\dakai QQ.py", line 25, in <module>
    an("********")
  File "C:\Users\Administrator\Desktop\dakai QQ.py", line 22, in an
    win32api.keybd_event(ord(i),0,win32con.KEYEVENIF_KEYUP,0)
AttributeError: 'module' object has no attribute 'KEYEVENIF_KEYUP'

谁可以告诉我知道问题在哪儿?怎么解决。

阅读 5.8k
1 个回答

KEYEVENIF_KEYUP错误

应该是KEYEVENTF_KEYUP

I(i) 和 T(t)的区别

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题