Python模拟键盘输入和鼠标操作详解编程语言

一、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)

附个键位码表:

字母和数字键     数字小键盘的键       功能键         其它键 
键   键码            键   键码                  键   键码      键                 键码 
A    65               0   96                      F1   112      Backspace    8 
B    66               1   97                       F2   113     Tab               9 
C    67               2   98                       F3   114     Clear             12 
D    68               3   99                       F4   115     Enter             13 
E     69               4   100                     F5   116     Shift              16 
F     70               5   101                     F6   117     Control         17 
G    71               6   102                     F7   118      Alt                18 
H    72               7   103                     F8   119     Caps Lock     20 
I      73               8   104                     F9   120     Esc                27 
J     74                9   105                    F10  121     Spacebar      32 
K    75                *   106                     F11  122     Page Up       33 
L     76               +   107                     F12  123     Page Down  34 
M   77            Enter 108                     —   —         End               35 
N    78                –   109                      —   —         Home           36 
O    79                 .   110                      —   —        Left Arrow     37 
P    80                 /   111                      —   —        Up Arrow      38 
Q    81                  —   —                      —   —        Right Arrow  39 
R    82                   —   —                      —   —        Down Arrow 40 
S    83                   —   —                      —   —         Insert           45 
T    84                   —   —                      —   —         Delete          46 
U   85                    —   —                     —   —         Help             47 
V   86                    —   —                     —   —         Num Lock    144 

其他未列出的字母和数字键盘为: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  

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/8235.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论