Python 实现键盘鼠标按键模拟


Posted in Python onNovember 18, 2020

有时候我们需要使用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)

以上就是Python 实现键盘按键模拟的详细内容,更多关于Python 键盘按键模拟的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python实现提取谷歌音乐搜索结果的方法
Jul 10 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
python实现银行管理系统
Oct 25 Python
python实现视频读取和转化图片
Dec 10 Python
Python 自由定制表格的实现示例
Mar 20 Python
python操作yaml说明
Apr 08 Python
Keras中的两种模型:Sequential和Model用法
Jun 27 Python
通过实例解析Python文件操作实现步骤
Sep 21 Python
python3.8动态人脸识别的实现示例
Sep 21 Python
python 怎样进行内存管理
Nov 10 Python
如何向scrapy中的spider传递参数的几种方法
Nov 18 #Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 #Python
Python下载的11种姿势(小结)
Nov 18 #Python
Python监听键盘和鼠标事件的示例代码
Nov 18 #Python
Opencv python 图片生成视频的方法示例
Nov 18 #Python
calendar在python3时间中常用函数举例详解
Nov 18 #Python
Python 远程开关机的方法
Nov 18 #Python
You might like
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
PHP生成带有雪花背景的验证码
2008/09/28 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
微信小程序实现上传图片功能
2018/05/28 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
详解Java中String JSONObject JSONArray List转换
2020/11/13 Javascript
Python基类函数的重载与调用实例分析
2015/01/12 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
python pandas 时间日期的处理实现
2019/07/30 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
环境工程专业自荐信范文
2014/03/18 职场文书
六一节目主持词
2014/04/01 职场文书
项目合作协议书范本
2014/04/16 职场文书
销售岗位职责范本
2014/06/12 职场文书
店铺转让协议书
2014/12/02 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python
详解Vue3使用axios的配置教程
2022/04/29 Vue.js