Python 实现键盘鼠标按键模拟
作者:平凡的编程者 时间:2021-11-30 11:00:26
有时候我们需要使用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
标签:python,键盘,鼠标,模拟
0
投稿
猜你喜欢
python Plotly绘图工具的简单使用
2023-06-13 01:16:17
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2022-12-27 03:58:07
golang分层测试之http接口测试入门教程
2024-05-25 15:12:00
matplotlib绘制两点间连线的几种方法实现
2021-07-27 09:02:24
Python爬取网易云音乐热门评论
2022-06-16 00:24:58
Google的产品设计指导思想
2008-03-23 14:15:00
Python实现按特定格式对文件进行读写的方法示例
2022-06-07 22:59:57
python 实现GUI(图形用户界面)编程详解
2023-10-05 15:11:34
Python实现K-means聚类算法并可视化生成动图步骤详解
2021-06-20 23:10:40
详解Python中的变量及其命名和打印
2023-07-23 11:31:45
JS密码生成与强度检测完整实例(附demo源码下载)
2024-04-25 13:13:07
实际应用:MySQL5存储过程编写
2008-11-11 12:25:00
Python 实现毫秒级淘宝抢购脚本的示例代码
2023-05-10 19:50:10
如何基于Python爬取隐秘的角落评论
2022-02-17 05:31:43
Python编程使用PyQt5库实现动态水波进度条示例
2021-11-16 18:50:16
用 AjaxTags 简化 Ajax 开发
2007-11-27 00:00:00
浅谈LogMiner的使用方法
2009-02-28 11:12:00
剖析网页设计中的几何圆
2010-10-19 12:27:00
AJAX应用之草稿自动保存
2007-08-23 08:29:00
SQL Server 2008网络协议深入理解
2024-01-17 02:42:34