Python 实现键盘鼠标按键模拟
作者:平凡的编程者 发布时间:2021-11-30 11:00:26
标签:python,键盘,鼠标,模拟
有时候我们需要使用python执行一些脚本,可能需要让程序自动按键或自动点击鼠标,下面的代码实现了对键盘的模拟按键,
需要安装pypiwin32,当然也可以直接用ctypes来实现。
pip install pypiwin32
安装pypiwin32。
键盘模拟
# coding=utf-8
import win32con
import win32api
import time
key_map = {
"0": 49, "1": 50, "2": 51, "3": 52, "4": 53, "5": 54, "6": 55, "7": 56, "8": 57, "9": 58,
"A": 65, "B": 66, "C": 67, "D": 68, "E": 69, "F": 70, "G": 71, "H": 72, "I": 73, "J": 74,
"K": 75, "L": 76, "M": 77, "N": 78, "O": 79, "P": 80, "Q": 81, "R": 82, "S": 83, "T": 84,
"U": 85, "V": 86, "W": 87, "X": 88, "Y": 89, "Z": 90
}
def key_down(key):
"""
函数功能:按下按键
参 数:key:按键值
"""
key = key.upper()
vk_code = key_map[key]
win32api.keybd_event(vk_code,win32api.MapVirtualKey(vk_code,0),0,0)
def key_up(key):
"""
函数功能:抬起按键
参 数:key:按键值
"""
key = key.upper()
vk_code = key_map[key]
win32api.keybd_event(vk_code, win32api.MapVirtualKey(vk_code, 0), win32con.KEYEVENTF_KEYUP, 0)
def key_press(key):
"""
函数功能:点击按键(按下并抬起)
参 数:key:按键值
"""
key_down(key)
time.sleep(0.02)
key_up(key)
鼠标模拟
# coding=utf-8
import win32api
import win32con
import win32gui
def move(x, y):
"""
函数功能:移动鼠标到指定位置
参 数:x:x坐标
y:y坐标
"""
win32api.SetCursorPos((x, y))
def get_cur_pos():
"""
函数功能:获取当前鼠标坐标
"""
p={"x":0,"y":0}
pos = win32gui.GetCursorPos()
p['x']=pos[0]
p['y']=pos[1]
return p
def left_click():
"""
函数功能:鼠标左键点击
"""
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
def right_click():
"""
函数功能:鼠标右键点击
"""
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN | win32con.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
def left_down():
"""
函数功能:鼠标左键按下
"""
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
def left_up():
"""
函数功能:鼠标左键抬起
"""
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
def right_down():
"""
函数功能:鼠标右键按下
"""
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
def right_up():
"""
函数功能:鼠标右键抬起
"""
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
来源:https://www.cnblogs.com/WushiShengFei/p/11062962.html


猜你喜欢
- 超级简单实现iframe框架滚动控制,前提要会简单修改原代码。step1:插入iframe标签在你想要的位置。<iframe 
- 1. 普通装饰器 import logging1. foo = use_loggine(foo) def use_loggine(func)
- 但是作者Nicholas C. Zakas在【动态原型】方式创建对象的时候没有深究可能会存在的问题和解决方案。而仅仅在继承的时候对【动态原型
- 在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别?上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助
- 本文介绍了用ASP的AdoDb.Stream读取/写入UTF-8编码格式的文件的方法:函数名称:ReadTextFile 作用:利用AdoD
- 1.聚合运算(1)使用内置的聚合运算函数进行计算1>内置的聚合运算函数sum(),mean(),max(),min(),size(),
- 本文实例演示了Python生成pdf文件的方法,是比较实用的功能,主要包含2个文件。具体实现方法如下:pdf.py文件如下:#!/usr/b
- 项目场景:常见的表单填写中都会遇到,比如新增信息,修改信息等,如下图相信大家对上面的验证都非常熟悉了,不多哔哔 本篇文章主要 想写 验证规则
- 本文详细讲述了Python使用MySQLdb for Python操作数据库的方法,分享给大家供大家参考。具体如下:一般来说网站就是要和数据
- 获取 系统时间 函数“NOW()” 函数 能够获得当前系统日期和时间,格式如下:&ldquo
- variables_to_restore函数,是TensorFlow为滑动平均值提供。之前,也介绍过通过使用滑动平均值可以让神经网络模型更加
- 问题描述:已经用pip install jieba安装好jieba分词工具,但是在Jupyter 里import jieba运行一直提示Im
- raw# row方法:(掺杂着原生sql和orm来执行的操作)res = CookBook.objects.raw('select
- Python的版本是挺折腾人的,本着简单实用的原则我介绍一下我是如何安装多版本Python的。环境:windows10(64位)Python
- 1、通过探测Flash Player的版本,来决定显示Flash内容还是替换内容,避免了过时的Flash插件影响Flash内容的正常显示。2
- 今天依旧是学算法,前几天在搞bbs项目,界面也很丑,评论功能好像也有BUG。现在不搞了,得学下算法和数据结构,笔试过不了,连面试的机会都没有
- 问题在使用MySQL数据库的时候,经常会遇到这么一个问题,就是“Can not connect to MySQL server. Too m
- 推荐:Navicat for MySQL 15注册激活详细教程Navicat Premium 15 永久破解激活工具及安装教程(亲测可用)1
- 本文实例讲述了flask框架实现连接sqlite3数据库的方法。分享给大家供大家参考,具体如下:1. 在flask文件夹中新建一个model
- 判断不仅包括电脑浏览器,还包括安卓、ios系统的手机以及平板电脑,游戏系统 var client = function(){ //呈现引擎