Python 模拟发送键盘按键,模拟快捷键

  • 实现步骤
    • 1.安装第三方库
    • 2.模拟键入键盘按键
    • 3.模拟鼠标点击

在rpa项目中,对于一些客户端软件,例如SAP,经常会用到一些快捷键来提高工作效率,或者实现人工点击的操作。开发软件时则是通过封装函数的方式,将传进来的按键或者鼠标的点击通过代码的方式模拟键入某些快捷按键以及鼠标的操作实现该功能。对用户而言,只需通过选择不同的组合键或单个按键则可实现该功能,无需用户写任何代码。

那么这些操作是如何实现的呢?小编根据常用的实现逻辑封装的了两个文件,代码如下文。

实现步骤

1.安装第三方库

需要安装pypiwin32,当然也可以直接用ctypes来实现。

pip install pypiwin32

2.模拟键入键盘按键

# 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)

3.模拟鼠标点击

# coding=utf-8
import win32api
import win32con
import win32guidef 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 pdef 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 模拟发送键盘按键相关推荐

  1. 发送linux键盘消息,在C#程序中模拟发送键盘按键消息

    using System.Runtime.InteropServices; 引入键盘事件函数 [DllImport("user32.dll")] public static ext ...

  2. Python模拟发送QQ文字/图片消息

    Python模拟发送QQ文字/图片消息 from io import BytesIOimport win32gui import win32con import win32clipboard as w ...

  3. python模拟鼠标键盘原理_Python-模拟鼠标键盘动作

    引 在使用电脑的时候,偶尔有需求要模拟鼠标键盘,进行一些机械重复的操作(刷新网页.抢票.某些小游戏等).如果为此专门下载一个按键精灵,总感觉杀鸡用牛刀,所以就开始探索一些轻量级解决方案.本人电脑上配置 ...

  4. python编程midi键盘按键_python 偷懒技巧——使用 keyboard 录制键盘事件

    之前在某本书上看到一个程序,可以通过 Python 记录下全局范围内的键盘事件,使用的是 ctypes 库. 后来几经尝试,始终不能成功运行.原来它只支持 Python2 和 32 位的 Window ...

  5. python 模拟鼠标键盘_python之模拟鼠标键盘动作

    上个月就打算开发个还算好玩的项目,但是一直没时间.这篇是此项目用到的一部分, 处理好此部分基本还差通信等方面的了.首先模拟鼠标键盘按下释放的动作,本人利用X11 这个库,所以要了解X11编程;其次,本 ...

  6. Python模拟鼠标键盘:pykeyboard库的使用

    目录 1.下载安装:pyHook库.PyWin32 2.安装:pykeyboard库 3.模拟鼠标键盘操作 3.1 鼠标操作 3.2 键盘操作 按键属性 4.输入中文 1.下载安装:pyHook库.P ...

  7. python编程midi键盘按键_Python中捕获键盘的方式详解

    python中捕获键盘操作一共有两种方法 第一种方法: 使用pygame中event方法 使用方式如下:使用键盘右键为例 if event.type = pygame.KEYDOWN and even ...

  8. python keyboard backspace_selenium键盘按键Keys类及键盘码详解

    selenium可以操作鼠标,此外它的Keys()类提供了操作键盘的途径,因为键盘上几乎所有按键都可以用Keys()类实现. 之前我们一直用元素的send_keys()方法输入文字,其实该方法也可以输 ...

  9. python编程midi键盘按键错乱_键盘按键错乱有以下几种相应的解决办法

    电脑会出现的问题有很多,有的时候或许是主机有问题,有的时候或许是系统有问题,有的时候又或许是屏幕有问题.但这些问题都不是主编我今天要说的.小编我今天要说的呢,是关于键盘的,那就是当键盘按键错乱时,我们 ...

最新文章

  1. 在批处理中调用JS操作MongoDB
  2. 【ACM】POJ 1664
  3. [翻译]通过调用多个动作创建ASP.NET MVC视图
  4. 【问链-EOS公开课】第十课 EOS 错误码整理
  5. tf报错之raise TypeError(“pred must not be a Python bool“)
  6. 3997: [TJOI2015]组合数学
  7. 网络规划设计师复习笔记
  8. 第三周PLECS仿真实验
  9. 使用VMware虚拟机安装Windows XP系统
  10. 将自己开发的vue组件库发布到npm
  11. proteus仿真运行时出现的错误
  12. ESXI 带网卡realtek驱动下载
  13. USB转SPI芯片操作FLASH--CH347应用
  14. Hive return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask.……table could not be cleaned up.
  15. 从阿里外包到年薪40W+的高级测试工程师,我的2年转行经历...
  16. C语言实验06_数学
  17. 人民币小写转换为大写
  18. 作为程序员,你关注哪些国外 IT 网站?
  19. 二叉树(树,森林,二叉树互转)
  20. Autoencoder-based Zeroth Order Optimization Method for Attacking Black-box Neural Networks

热门文章

  1. EasyPoi导入导出(一)
  2. java operate_java中的operate(x); 是个是么样的函数,功能是什么,在哪里可以连接它的机制啊??...
  3. 成都低价卖书-java uml 架构设计等方面
  4. 风云4A卫星行列号和经纬度查找表文件下载及解析
  5. WebMagic Java 爬虫的简单应用
  6. java泛型的逆变_Java泛型的协变与逆变
  7. 【DIY】使用STM32及PID算法实现一个磁悬浮玩具
  8. Python 绘制热力图
  9. 仿脉脉PHP源码,极限脉脉主图,缺口衰竭幅图,无未来(源码免费)
  10. 对迅雷下载进行投毒的简单尝试