
一、Python键盘输入模拟:
import win32api
import win32con
win32api.keybd_event(17,0,0,0) #ctrl键位码是17
win32api.keybd_event(86,0,0,0) #v键位码是86
win32api.keybd_event(86,0,win32con.KEYEVENTF_KEYUP,0) #释放按键
win32api.keybd_event(17,0,win32con.KEYEVENTF_KEYUP,0)
附个键位码表:
其他未列出的字母和数字键盘为:ord(c)
二、 使用windll.user32实现鼠标模拟:
from ctypes import * windll.user32.SetCursorPos(100, 100)
三. 使用AutoItX实现鼠标模拟:
#将 AutoItX3.dll 文件复制到 Windows 目录然后注册一下regsvr32.exe AutoItX3.dll
from win32com.client import Dispatch def enter_game(): AutoItX = Dispatch( "AutoItX3.Control" ) # Block All Input AutoItX.BlockInput( 1 ) AutoItX.Sleep( 20000 ) if AutoItX.WinActivate( GAME_WINDOW_TITLE, '' ): pass else: if AutoItX.WinWaitActive( GAME_WINDOW_TITLE, '', 8 ): pass else: # Unblock input AutoItX.BlockInput( 0 ) return False AutoItX.WinSetTitle( GAME_WINDOW_TITLE, '', _pre_title ) AutoItX.WinSetState( _pre_title, '', AutoItX.SW_MAXIMIZE ) AutoItX.Sleep( 5000 ) AutoItX.MouseMove( 462, 396, 10 ) AutoItX.MouseClick( "left" ) AutoItX.Sleep( 1000 ) AutoItX.Send( GAME_ACCT_NAME ) AutoItX.Sleep( 1000 ) AutoItX.MouseMove ( 462, 472, 10 ) AutoItX.MouseClick( "left" ) AutoItX.Sleep( 1000 ) AutoItX.Send( GAME_ACCT_PASS ) AutoItX.Send( "{ENTER}" ) AutoItX.Sleep( 10000 ) # Unblock input AutoItX.BlockInput( 0 ) return True