python之auto鼠标/键盘事件
mouse_key.py
- import os
- import time
- import win32gui
- import win32api
- import win32con
- from ctypes import *
- ###################################################################################################
- # Define the KeyValue
- ###################################################################################################
- VK_CODE = {
- 'backspace':0x08,' ':0x08,' ':0x08,
- 'tab':0x09,
- 'clear':0x0C,
- 'enter':0x0D,
- 'shift':0x10,
- 'ctrl':0x11,
- 'alt':0x12,
- 'pause':0x13,
- 'caps_lock':0x14,
- 'esc':0x1B,
- 'spacebar':0x20,
- 'page_up':0x21,
- 'page_down':0x22,
- 'end':0x23,
- 'home':0x24,
- 'left_arrow':0x25,
- 'up_arrow':0x26,
- 'right_arrow':0x27,
- 'down_arrow':0x28,
- 'select':0x29,
- 'print':0x2A,
- 'execute':0x2B,
- 'print_screen':0x2C,
- 'ins':0x2D,
- 'del':0x2E,
- 'help':0x2F,
- '':0x30,
- '':0x31,
- '':0x32,
- '':0x33,
- '':0x34,
- '':0x35,
- '':0x36,
- '':0x37,
- '':0x38,
- '':0x39,
- '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,
- '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,
- 'numpad_0':0x60,
- 'numpad_1':0x61,
- 'numpad_2':0x62,
- 'numpad_3':0x63,
- 'numpad_4':0x64,
- 'numpad_5':0x65,
- 'numpad_6':0x66,
- 'numpad_7':0x67,
- 'numpad_8':0x68,
- 'numpad_9':0x69,
- 'multiply_key':0x6A,
- 'add_key':0x6B,
- 'separator_key':0x6C,
- 'subtract_key':0x6D,
- 'decimal_key':0x6E,
- 'divide_key':0x6F,
- 'F1':0x70,
- 'F2':0x71,
- 'F3':0x72,
- 'F4':0x73,
- 'F5':0x74,
- 'F6':0x75,
- 'F7':0x76,
- 'F8':0x77,
- 'F9':0x78,
- 'F10':0x79,
- 'F11':0x7A,
- 'F12':0x7B,
- 'F13':0x7C,
- 'F14':0x7D,
- 'F15':0x7E,
- 'F16':0x7F,
- 'F17':0x80,
- 'F18':0x81,
- 'F19':0x82,
- 'F20':0x83,
- 'F21':0x84,
- 'F22':0x85,
- 'F23':0x86,
- 'F24':0x87,
- 'num_lock':0x90,
- 'scroll_lock':0x91,
- 'left_shift':0xA0,
- 'right_shift ':0xA1,
- 'left_control':0xA2,
- 'right_control':0xA3,
- 'left_menu':0xA4,
- 'right_menu':0xA5,
- 'browser_back':0xA6,
- 'browser_forward':0xA7,
- 'browser_refresh':0xA8,
- 'browser_stop':0xA9,
- 'browser_search':0xAA,
- 'browser_favorites':0xAB,
- 'browser_start_and_home':0xAC,
- 'volume_mute':0xAD,
- 'volume_Down':0xAE,
- 'volume_up':0xAF,
- 'next_track':0xB0,
- 'previous_track':0xB1,
- 'stop_media':0xB2,
- 'play/pause_media':0xB3,
- 'start_mail':0xB4,
- 'select_media':0xB5,
- 'start_application_1':0xB6,
- 'start_application_2':0xB7,
- 'attn_key':0xF6,
- 'crsel_key':0xF7,
- 'exsel_key':0xF8,
- 'play_key':0xFA,
- 'zoom_key':0xFB,
- 'clear_key':0xFE,
- '=':0x3d,
- '+':0x2B,
- ',':0x2C,
- '-':0xBD,
- '.':0xBE,
- '/':0xBF,
- '`':0xC0,
- ';':0xBA,
- '[':0xDB,
- '\\':0xDC,
- ']':0xDD,
- "'":0xDE,
- '`':0xC0,
- "@":0x40}
- ###################################################################################################
- # 鼠标操作
- # 移动
- # 点击
- #
- ###################################################################################################
- def mouse_move(x,y):
- windll.user32.SetCursorPos(x, y)
- def mouse_click(x=None,y=None):
- if not x is None and not y is None:
- mouse_move(x,y)
- time.sleep(0.05)
- win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
- win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
- class POINT(Structure):
- _fields_ = [("x", c_ulong),("y", c_ulong)]
- def get_mouse_point():
- po = POINT()
- windll.user32.GetCursorPos(byref(po))
- return int(po.x), int(po.y)
- ###################################################################################################
- # 键盘输入
- ###################################################################################################
- SHIFT_CODE = {"!","@","#","$","%","^","&","*","(",")","_","+","<",">","?",":"}
- def key_input(str=''):
- global VK_CODE
- for ch in str:
- if ch in VK_CODE:
- key = VK_CODE[ch]
- if ch >= 'A' and ch <= 'Z':
- sendKey(VK_CODE["caps_lock"])
- sendKey(key)
- sendKey(VK_CODE["caps_lock"])
- elif ch in SHIFT_CODE:
- sendShiftAndKey(key)
- else:
- sendKey(key)
- elif ch == '\t':
- print("Tab")
- sendKey(VK_CODE["tab"])
- time.sleep(0.01)
- def sendKey(key):
- win32api.keybd_event(int(key) ,0 ,0 ,0)
- win32api.keybd_event(int(key) ,0 ,win32con.KEYEVENTF_KEYUP,0)
- def sendShiftAndKey(key):
- win32api.keybd_event(VK_CODE["shift"],0 ,0 ,0)
- win32api.keybd_event(int(key) ,0 ,0 ,0)
- win32api.keybd_event(int(key) ,0 ,win32con.KEYEVENTF_KEYUP,0)
- win32api.keybd_event(VK_CODE["shift"] ,0 ,win32con.KEYEVENTF_KEYUP,0)
test.py
- import os,sys
- from mouse_key import *
- def move_click(x,y,t=0.01):
- mouse_move(x,y)
- time.sleep(t)
- mouse_click(x,y)
- def readFile(fname):
- with open(fname, 'r') as f:
- return f.readlines()
- #load url list
- urlList = readFile(sys.argv[1]) # [0]
- for url in urlList:
- #open chrome
- os.system("start chrome %s" % (url))
- time.sleep(10)
- #move to input tag
- move_click(383,288)
- time.sleep(1)
- #input sexy
- key_input("sexy")
- sendKey(0x0D)
- time.sleep(1)
- #input enter key
- sendKey(0x0D)
- time.sleep(1)
python之auto鼠标/键盘事件的更多相关文章
- Python——pyHook监听鼠标键盘事件
pyHook包为Windows中的全局鼠标和键盘事件提供回调. 底层C库报告的信息包括事件的时间,事件发生的窗口名称,事件的值,任何键盘修饰符等. 而正常工作需要pythoncom等操作系统的API的 ...
- Python - selenium_WebDriver 鼠标键盘事件
from selenium import webdriver #引入ActionChains类 提供了鼠标的操作方法 from selenium.webdriver.common.action_cha ...
- Linux 模拟 鼠标 键盘 事件
/************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: ...
- Python直接控制鼠标键盘
Python直接控制鼠标键盘 之前因为期末的原因已经很久没写博客了,今天博主发现一个好玩的模块PyAutoGUI,借助它可以使用Python脚本直接控制键盘鼠标,感觉可以解决很多无聊的机械运动.这里记 ...
- Tkinter 鼠标键盘事件(一)
一: 鼠标事件 <Button-1> 鼠标左键单击 ...
- Selenium4.0+Python3系列(四) - 常见元素操作(含鼠标键盘事件)
一.写在前面 上篇文章介绍的是关于浏览器的常见操作,接下来,我们将继续分享关于元素的常见操作,建议收藏.转发! 二.元素的状态 在操作元素之前,我们需要了解元素的常见状态. 1.常见元素状态判断,傻傻 ...
- c# 使用hook来监控鼠标键盘事件的示例代码
如果这个程序在10几年前,QQ刚刚兴起的时候,有了这个代码,就可实现盗号了. 当然使用钩子我们更多的是实现"全局快捷键"的需求. 比如 程序最小化隐藏后要"某快捷键&qu ...
- Tkinter 鼠标键盘事件(二)
一个Tkinter主要跑在mainloop进程里.Events可能来自多个地方,比如按键,鼠标,或是系统事件. Tkinter提供了丰富的方法来处理这些事件.对于每一个控件Widget,你都可以为其绑 ...
- 由chrome剪贴板问题研究到了js模拟鼠标键盘事件
写在前面 最近公司在搞浏览器兼容的事情,所有浏览器兼容的问题不得不一个人包了.下面来说一下今天遇到的一个问题吧 大家都知道IE下面如果要获得剪贴板里面的信息的话,代码应该如下所示 window.cli ...
随机推荐
- [js]this和call.call
JavaScript 的一大特点是,函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念. https://www.cnblogs.com/coco1s/p/4833199. ...
- (转)Java大数操作(BigInteger、BigDecimal)
基础知识 对于二进制来说,最高位代表正负号,-0表示-128,+0表示032位系统int型4个字节:-(2的31次方) ~ (2的31次方) 减 1最大负数:10000000 00000000 000 ...
- [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 ...
- 数据分析与挖掘 - R语言:贝叶斯分类算法(案例二)
接着案例一,我们再使用另一种方法实例一个案例 直接上代码: #!/usr/bin/Rscript library(plyr) library(reshape2) #1.根据训练集创建朴素贝叶斯分类器 ...
- Android提权漏洞CVE-2014-7920、CVE-2014-7921
- webpack使用雪碧图插件
1.先安装插件 npm install --save-dev webpack-spritesmith 2.配置webpack 配置之前 先引入var SpritesmithPlugin = requi ...
- Python实现selenium回放时间设置
一般在做selenium时会有,回放快慢的需求. 实现思路: 1.一般写selenium会自定义findelement函数,来实现查找元素. 2.在查找函数上加个睡眠时间的装饰器,函数执行完等待若干秒 ...
- maven的下载,安装配置以及build一个java web项目
一.下载 下载地址:http://maven.apache.org/download.cgi 二.安装 下载完成后,解压,进入到bin目录: 三.环境变量配置 复制bin目录下的文件的路径(如:xxx ...
- 笔记 : WampServe加装PHP版本(7.2.3)为例
1.由于正在学习Laravel框架,服务器wamp,Composer已搭建完成,但在安装laravel installer之后使用laravel new blog,报错为"This pack ...
- Python记录4:文件操作
###文件 ''' 1. 什麽是文件 文件是操作系統為用戶/应用程序提供一種操作硬盤的虚拟单位 2. 爲何要用文件 为了存取硬盘数据 3. 如何用文件 #1. 打開文件 #2. 读写文 ...