zoukankan      html  css  js  c++  java
  • Python模拟键盘输入和鼠标操作

    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 文件复制到 window目录然后注册一下

    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

  • 相关阅读:
    jQuery选择器
    ViewState对象与Session对象、Cookie对象
    angularjs关于$scope的生命周期详解(转)
    了解AngularJS的$scope的工作原理和生命周期(转载)
    angularjs route 路由
    angularJS--依赖注入
    angularjs动画-ngAnimate--快速上手、使用
    深入浅出理解AngularJS模块
    Angular入门1-之-基础概览02
    Angular入门1-之-基础概览01
  • 原文地址:https://www.cnblogs.com/nemolmt/p/5807702.html
Copyright © 2011-2022 走看看