mouse_key.py

  1. import os
  2. import time
  3. import win32gui
  4. import win32api
  5. import win32con
  6. from ctypes import *
  7.  
  8. ###################################################################################################
  9. # Define the KeyValue
  10. ###################################################################################################
  11. VK_CODE = {
  12. 'backspace':0x08,' ':0x08,' ':0x08,
  13. 'tab':0x09,
  14. 'clear':0x0C,
  15. 'enter':0x0D,
  16. 'shift':0x10,
  17. 'ctrl':0x11,
  18. 'alt':0x12,
  19. 'pause':0x13,
  20. 'caps_lock':0x14,
  21. 'esc':0x1B,
  22. 'spacebar':0x20,
  23. 'page_up':0x21,
  24. 'page_down':0x22,
  25. 'end':0x23,
  26. 'home':0x24,
  27. 'left_arrow':0x25,
  28. 'up_arrow':0x26,
  29. 'right_arrow':0x27,
  30. 'down_arrow':0x28,
  31. 'select':0x29,
  32. 'print':0x2A,
  33. 'execute':0x2B,
  34. 'print_screen':0x2C,
  35. 'ins':0x2D,
  36. 'del':0x2E,
  37. 'help':0x2F,
  38. '':0x30,
  39. '':0x31,
  40. '':0x32,
  41. '':0x33,
  42. '':0x34,
  43. '':0x35,
  44. '':0x36,
  45. '':0x37,
  46. '':0x38,
  47. '':0x39,
  48. 'a':0x41, 'b':0x42, 'c':0x43, 'd':0x44, 'e':0x45, 'f':0x46, 'g':0x47, 'h':0x48, 'i':0x49, 'j':0x4A, 'k':0x4B, 'l':0x4C, 'm':0x4D, 'n':0x4E, 'o':0x4F, 'p':0x50, 'q':0x51, 'r':0x52, 's':0x53, 't':0x54, 'u':0x55, 'v':0x56, 'w':0x57, 'x':0x58, 'y':0x59, 'z':0x5A,
  49. 'A':0x41, 'B':0x42, 'C':0x43, 'D':0x44, 'E':0x45, 'F':0x46, 'G':0x47, 'H':0x48, 'I':0x49, 'J':0x4A, 'K':0x4B, 'L':0x4C, 'M':0x4D, 'N':0x4E, 'O':0x4F, 'P':0x50, 'Q':0x51, 'R':0x52, 'S':0x53, 'T':0x54, 'U':0x55, 'V':0x56, 'W':0x57, 'X':0x58, 'Y':0x59, 'Z':0x5A,
  50. 'numpad_0':0x60,
  51. 'numpad_1':0x61,
  52. 'numpad_2':0x62,
  53. 'numpad_3':0x63,
  54. 'numpad_4':0x64,
  55. 'numpad_5':0x65,
  56. 'numpad_6':0x66,
  57. 'numpad_7':0x67,
  58. 'numpad_8':0x68,
  59. 'numpad_9':0x69,
  60. 'multiply_key':0x6A,
  61. 'add_key':0x6B,
  62. 'separator_key':0x6C,
  63. 'subtract_key':0x6D,
  64. 'decimal_key':0x6E,
  65. 'divide_key':0x6F,
  66. 'F1':0x70,
  67. 'F2':0x71,
  68. 'F3':0x72,
  69. 'F4':0x73,
  70. 'F5':0x74,
  71. 'F6':0x75,
  72. 'F7':0x76,
  73. 'F8':0x77,
  74. 'F9':0x78,
  75. 'F10':0x79,
  76. 'F11':0x7A,
  77. 'F12':0x7B,
  78. 'F13':0x7C,
  79. 'F14':0x7D,
  80. 'F15':0x7E,
  81. 'F16':0x7F,
  82. 'F17':0x80,
  83. 'F18':0x81,
  84. 'F19':0x82,
  85. 'F20':0x83,
  86. 'F21':0x84,
  87. 'F22':0x85,
  88. 'F23':0x86,
  89. 'F24':0x87,
  90. 'num_lock':0x90,
  91. 'scroll_lock':0x91,
  92. 'left_shift':0xA0,
  93. 'right_shift ':0xA1,
  94. 'left_control':0xA2,
  95. 'right_control':0xA3,
  96. 'left_menu':0xA4,
  97. 'right_menu':0xA5,
  98. 'browser_back':0xA6,
  99. 'browser_forward':0xA7,
  100. 'browser_refresh':0xA8,
  101. 'browser_stop':0xA9,
  102. 'browser_search':0xAA,
  103. 'browser_favorites':0xAB,
  104. 'browser_start_and_home':0xAC,
  105. 'volume_mute':0xAD,
  106. 'volume_Down':0xAE,
  107. 'volume_up':0xAF,
  108. 'next_track':0xB0,
  109. 'previous_track':0xB1,
  110. 'stop_media':0xB2,
  111. 'play/pause_media':0xB3,
  112. 'start_mail':0xB4,
  113. 'select_media':0xB5,
  114. 'start_application_1':0xB6,
  115. 'start_application_2':0xB7,
  116. 'attn_key':0xF6,
  117. 'crsel_key':0xF7,
  118. 'exsel_key':0xF8,
  119. 'play_key':0xFA,
  120. 'zoom_key':0xFB,
  121. 'clear_key':0xFE,
  122. '=':0x3d,
  123. '+':0x2B,
  124. ',':0x2C,
  125. '-':0xBD,
  126. '.':0xBE,
  127. '/':0xBF,
  128. '`':0xC0,
  129. ';':0xBA,
  130. '[':0xDB,
  131. '\\':0xDC,
  132. ']':0xDD,
  133. "'":0xDE,
  134. '`':0xC0,
  135. "@":0x40}
  136. ###################################################################################################
  137. # 鼠标操作
  138. # 移动
  139. # 点击
  140. #
  141. ###################################################################################################
  142. def mouse_move(x,y):
  143. windll.user32.SetCursorPos(x, y)
  144.  
  145. def mouse_click(x=None,y=None):
  146. if not x is None and not y is None:
  147. mouse_move(x,y)
  148. time.sleep(0.05)
  149. win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
  150. win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
  151.  
  152. class POINT(Structure):
  153. _fields_ = [("x", c_ulong),("y", c_ulong)]
  154.  
  155. def get_mouse_point():
  156. po = POINT()
  157. windll.user32.GetCursorPos(byref(po))
  158. return int(po.x), int(po.y)
  159. ###################################################################################################
  160. # 键盘输入
  161. ###################################################################################################
  162. SHIFT_CODE = {"!","@","#","$","%","^","&","*","(",")","_","+","<",">","?",":"}
  163. def key_input(str=''):
  164. global VK_CODE
  165. for ch in str:
  166. if ch in VK_CODE:
  167. key = VK_CODE[ch]
  168. if ch >= 'A' and ch <= 'Z':
  169. sendKey(VK_CODE["caps_lock"])
  170. sendKey(key)
  171. sendKey(VK_CODE["caps_lock"])
  172. elif ch in SHIFT_CODE:
  173. sendShiftAndKey(key)
  174. else:
  175. sendKey(key)
  176. elif ch == '\t':
  177. print("Tab")
  178. sendKey(VK_CODE["tab"])
  179. time.sleep(0.01)
  180.  
  181. def sendKey(key):
  182. win32api.keybd_event(int(key) ,0 ,0 ,0)
  183. win32api.keybd_event(int(key) ,0 ,win32con.KEYEVENTF_KEYUP,0)
  184.  
  185. def sendShiftAndKey(key):
  186. win32api.keybd_event(VK_CODE["shift"],0 ,0 ,0)
  187. win32api.keybd_event(int(key) ,0 ,0 ,0)
  188. win32api.keybd_event(int(key) ,0 ,win32con.KEYEVENTF_KEYUP,0)
  189. win32api.keybd_event(VK_CODE["shift"] ,0 ,win32con.KEYEVENTF_KEYUP,0)

test.py

  1. import os,sys
  2. from mouse_key import *
  3.  
  4. def move_click(x,y,t=0.01):
  5. mouse_move(x,y)
  6. time.sleep(t)
  7. mouse_click(x,y)
  8. def readFile(fname):
  9. with open(fname, 'r') as f:
  10. return f.readlines()
  11.  
  12. #load url list
  13. urlList = readFile(sys.argv[1]) # [0]
  14. for url in urlList:
  15. #open chrome
  16. os.system("start chrome %s" % (url))
  17. time.sleep(10)
  18. #move to input tag
  19. move_click(383,288)
  20. time.sleep(1)
  21. #input sexy
  22. key_input("sexy")
  23. sendKey(0x0D)
  24. time.sleep(1)
  25. #input enter key
  26. sendKey(0x0D)
  27. time.sleep(1)

python之auto鼠标/键盘事件的更多相关文章

  1. Python——pyHook监听鼠标键盘事件

    pyHook包为Windows中的全局鼠标和键盘事件提供回调. 底层C库报告的信息包括事件的时间,事件发生的窗口名称,事件的值,任何键盘修饰符等. 而正常工作需要pythoncom等操作系统的API的 ...

  2. Python - selenium_WebDriver 鼠标键盘事件

    from selenium import webdriver #引入ActionChains类 提供了鼠标的操作方法 from selenium.webdriver.common.action_cha ...

  3. Linux 模拟 鼠标 键盘 事件

    /************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: ...

  4. Python直接控制鼠标键盘

    Python直接控制鼠标键盘 之前因为期末的原因已经很久没写博客了,今天博主发现一个好玩的模块PyAutoGUI,借助它可以使用Python脚本直接控制键盘鼠标,感觉可以解决很多无聊的机械运动.这里记 ...

  5. Tkinter 鼠标键盘事件(一)

    一: 鼠标事件 <Button-1>                                                                     鼠标左键单击 ...

  6. Selenium4.0+Python3系列(四) - 常见元素操作(含鼠标键盘事件)

    一.写在前面 上篇文章介绍的是关于浏览器的常见操作,接下来,我们将继续分享关于元素的常见操作,建议收藏.转发! 二.元素的状态 在操作元素之前,我们需要了解元素的常见状态. 1.常见元素状态判断,傻傻 ...

  7. c# 使用hook来监控鼠标键盘事件的示例代码

    如果这个程序在10几年前,QQ刚刚兴起的时候,有了这个代码,就可实现盗号了. 当然使用钩子我们更多的是实现"全局快捷键"的需求. 比如 程序最小化隐藏后要"某快捷键&qu ...

  8. Tkinter 鼠标键盘事件(二)

    一个Tkinter主要跑在mainloop进程里.Events可能来自多个地方,比如按键,鼠标,或是系统事件. Tkinter提供了丰富的方法来处理这些事件.对于每一个控件Widget,你都可以为其绑 ...

  9. 由chrome剪贴板问题研究到了js模拟鼠标键盘事件

    写在前面 最近公司在搞浏览器兼容的事情,所有浏览器兼容的问题不得不一个人包了.下面来说一下今天遇到的一个问题吧 大家都知道IE下面如果要获得剪贴板里面的信息的话,代码应该如下所示 window.cli ...

随机推荐

  1. [js]this和call.call

    JavaScript 的一大特点是,函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念. https://www.cnblogs.com/coco1s/p/4833199. ...

  2. (转)Java大数操作(BigInteger、BigDecimal)

    基础知识 对于二进制来说,最高位代表正负号,-0表示-128,+0表示032位系统int型4个字节:-(2的31次方) ~ (2的31次方) 减 1最大负数:10000000 00000000 000 ...

  3. [LeetCode] 704. Binary Search_Easy tag: Binary Search

    Given a sorted (in ascending order) integer array nums of n elements and a target value, write a fun ...

  4. 数据分析与挖掘 - R语言:贝叶斯分类算法(案例二)

    接着案例一,我们再使用另一种方法实例一个案例 直接上代码: #!/usr/bin/Rscript library(plyr) library(reshape2) #1.根据训练集创建朴素贝叶斯分类器 ...

  5. Android提权漏洞CVE-2014-7920、CVE-2014-7921

  6. webpack使用雪碧图插件

    1.先安装插件 npm install --save-dev webpack-spritesmith 2.配置webpack 配置之前 先引入var SpritesmithPlugin = requi ...

  7. Python实现selenium回放时间设置

    一般在做selenium时会有,回放快慢的需求. 实现思路: 1.一般写selenium会自定义findelement函数,来实现查找元素. 2.在查找函数上加个睡眠时间的装饰器,函数执行完等待若干秒 ...

  8. maven的下载,安装配置以及build一个java web项目

    一.下载 下载地址:http://maven.apache.org/download.cgi 二.安装 下载完成后,解压,进入到bin目录: 三.环境变量配置 复制bin目录下的文件的路径(如:xxx ...

  9. 笔记 : WampServe加装PHP版本(7.2.3)为例

    1.由于正在学习Laravel框架,服务器wamp,Composer已搭建完成,但在安装laravel installer之后使用laravel new blog,报错为"This pack ...

  10. Python记录4:文件操作

    ###文件 ''' 1. 什麽是文件     文件是操作系統為用戶/应用程序提供一種操作硬盤的虚拟单位 2. 爲何要用文件     为了存取硬盘数据 3. 如何用文件 #1. 打開文件 #2. 读写文 ...