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 相关文章推荐
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
Python实现在Linux系统下更改当前进程运行用户
Feb 04 Python
python正则表达式及使用正则表达式的例子
Jan 22 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
python字典改变value值方法总结
Jun 21 Python
Python中遍历列表的方法总结
Jun 27 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
python读取excel数据绘制简单曲线图的完整步骤记录
Oct 30 Python
python process模块的使用简介
May 14 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
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
php笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
golang与PHP输出excel示例
2016/07/22 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
jQuery给动态添加的元素绑定事件的方法
2015/03/09 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
React组件生命周期详解
2017/07/03 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
法律进企业活动方案
2014/03/04 职场文书
农村葬礼主持词
2014/03/31 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
自我工作评价范文
2015/03/06 职场文书
关于迟到的检讨书
2015/05/06 职场文书
自考生自我评价
2019/06/21 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js
create-react-app开发常用配置教程
2022/06/25 Javascript