python-自动化篇-终极工具-用GUI自动控制键盘和鼠标-pyautogui-键盘

news/2024/5/18 22:03:18

文章目录

  • 键盘
  • 键盘——记忆宫殿
    • 入门——通过键盘发送一个字符串——typewrite()
    • 常规——键名——typewrite()
    • 常规——按下键盘——keyDown()
    • 常规——释放键盘——keyUp()
    • 升级——热键组合——hotkey()

键盘

pyautogui也有一些函数向计算机发送虚拟按键,让你能够填充表格,或在应用中输入文本。

键盘——记忆宫殿

typewrite(message)键入给定消息字符串中的字符。——type+write:字符+输入
typewrite([key1,key2,key3])键入给定键字符串。
press(key)按下并释放给定键。——press:释放
keyDown(key)模拟按下给定键。——key+down:按键+下
keyUp(key)模拟释放给定键。——key+up:按键+上
hotkey([key1,key2,key3])模拟按顺序按下给定键字符串,然后以相反的顺序释放。——hot+key:热+按键

入门——通过键盘发送一个字符串——typewrite()

pyautogui.typewrite() 函数向计算机发送虚拟按键。


pyautogui.click(100,100); pyautogui.typewrite('Hello world!')

命令说明
:在同一行中放两条命令,用分号隔开,这让交互式环境不会在两个指令之间提示输入。这防止了你在 click()typewrite() 调用之间,不小心让新的窗口获得焦点,从而让这个例子失败。

命令含义
Python 首先在坐标(100,100)处发出虚拟鼠标点击,这将点击文件编辑窗口,让它获得焦点。typewrite() 函数调用将向窗口发送文本 Hello world!。

在这里插入图片描述


常规——键名——typewrite()

可以查看 pyautogui.KEYBOARD_KEYS 列表,看看 pyautogui 接受的所有可能的键字符串。‘shift’ 字符串指的是左边的 Shift 键,它等价于’shiftleft’。‘ctrl’、‘alt’ 和 ‘win’ 字符串也一样,它们都是指左边的键。

PyKeyboard属性
键盘键字符串 含义
'a','b','c','A','B','C','1','2','3','!','@','#'单个字符的键
'enter'(or 'return' or '\n')回车键
'esc'Esc键
'shiftleft','shiftright'左右Shift键
'altleft','altright'左右Alt键
'ctrlleft','ctrlright'左右Ctrl键
'tab'(or '\t')Tab键
'backspace','delete'Backspace和Delete键
'pageup','pagedown'Page Up和Page Down键
'home','end'Home和End键
'up','down','left','right'上下左右箭头键
'f1','f2','f3'等F1至F12键
'volumemute','volumedown','volumeup'静音、减小音量、放大音量键(有些键盘没有这些键,但你的操作系统仍能理解这些模拟的按键)
‘pause’Pause键
'capslock','numlock','scrollock'Caps Lock,Num Lock和Scroll Lock键
'insert'Ins或Insert键
'printscreen'Prtsc或Print Screen键
'winleft','winright'左右Win键(在Windows上)
'command'Command键(在OS X上)
'option'Option键(在OS X上)

常规——按下键盘——keyDown()

命令说明
pyautogui.keyDown()将向计算机发送虚拟的按键。

pyautogui.keyDown('shift');pyautogui.press('4');pyautogui.keyUp('shift')

命令含义
这行代码按下 Shift,按下(并释放)4,然后再释放 Shift。如果你需要在文本输入框内打一个字符串,typewrite() 函数就更适合。但对于接受单个按键命令的应用,press() 函数是更简单的方式。

cmd执行时注意事项
在这里插入图片描述

cmd效果如下
在这里插入图片描述
效果说明
执行第二条命令,出现效果:$,即实现“按下 Shift,按下(并释放)4,然后再释放 Shift”的效果。

常规——释放键盘——keyUp()

pyautogui.keyUp()将向计算机发送虚拟的释放。

pyautogui.keyUp('shift')

命令含义:释放Shift键。

在这里插入图片描述

升级——热键组合——hotkey()

“热键”或“快捷键”是一种按键组合,它调用某种应用功能。拷贝选择内容的常用热键是Ctrl-C(在 Windows 和 Linux 上)。用户按住Ctrl键,然后按C键,然后释放C和Ctrl键。要用pyautoguikeyDown()keyUp() 函数来做到这一点,必须输入以下代码:

pyautogui.keyDown('ctrl')
pyautogui.keyDown('c')
pyautogui.keyUp('c')
pyautogui.keyUp('ctrl')

这相当复杂。作为替代,可以使用 pyautogui.hotkey() 函数,它接受多个键字符串参数,按顺序按下,再按相反的顺序释放。例如对于 Ctrl-C,代码就像下面这样简单:

pyautogui.hotkey('ctrl','c')

报错
在这里插入图片描述

对于更大的热键组合,这个函数特别有用。在 Word 中,Ctrl-Alt-Shift-S 热键组合显示 Style(样式)窗口。不必使用 8 次不同的函数调用(4 次 keyDown() 调用和4 次 keyUp() 调用),你只要调用 hotkey('ctrl', 'alt', 'shift', 's')
在屏幕的左上角打开一个新的 IDLE 文件编辑窗口,在交互式环境中输入以下内容(在 OS X 中,用 ‘ctrl’ 代替 ‘alt’):

>>> import pyautogui, time
>>> def commentAfterDelay():pyautogui.click(100, 100)pyautogui.typewrite('In IDLE, Alt-3 comments out a line.')time.sleep(2) pyautogui.hotkey('alt', '3')
>>> commentAfterDelay()

命令含义:这定义了一个函数commentAfterDelay(),在被调用时,将点击文件编辑窗口,让它获得焦点①,输出“In IDLE,Alt-3 comments out a line”②,暂停2秒钟,然后模拟按下 Alt-3 热键(或 OS X 上的 ctrl-3)③。这个快捷键在当前行加上两个#字符,将它注释掉(在 IDLE 中编写你自己的代码时,这是一个有用的技巧,应该知道)。

在这里插入图片描述


http://www.mrgr.cn/p/40531616

相关文章

微信小程序4~6章总结

目录 第四章 页面组件总结 4.1 组件的定义及属性 4.2 容器视图组件 4.2.1 view 4.2.2 scroll-view 4.2.3 swiper 4.3 基础内容组件 4.3.1 icon ​编辑 4.3.2 text 4.3.3 progress ​编辑 4.4 表单组件 4.4.1 button 4.4.2 radio 4.4.3 checkbox 4.4.4 switch …

手撕sql面试题:根据分数进行排名,不使用窗口函数

分享一道面试题: 有一个分数表id 是该表的主键。该表的每一行都包含了一场考试的分数。Score 是一个有两位小数点的浮点值。 以下是表结构和数据: Create table Scores ( id int(11) NOT NULL AUTO_INCREMENT, score DECIMAL(3,2), PRIMARY KEY…

OpenAI未至,Open-Sora再度升级!已支持生成16秒720p视频

Open-Sora 在开源社区悄悄更新了!现在支持长达 16 秒的视频生成,分辨率最高可达 720p,并且可以处理任何宽高比的文本到图像、文本到视频、图像到视频、视频到视频和无限长视频的生成需求。我们来试试效果。 生成个横屏圣诞雪景,发b站再生成个竖屏,发抖音还能生成16秒的长视…

解决宏定义后面无法加分号

总结:注意是针对单行if语句使用,并且宏定义后面必须带分号(格式统一) 参考连接 C语言种do_while(0)的妙用_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1vk4y1R7VJ/?spm_id_from333.337.search-card.all.click&vd_…

OpenCV——Bernsen局部阈值二值化方法

目录 一、Bernsen算法1、算法概述2、参考文献二、代码实现三、结果展示Bernsen局部阈值二值化方法由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、Bernsen算法 1、算法概述 Bernsen 算法是另一种流行的局部阈值二值化方…

Jenkins CI/CD 持续集成专题四 Jenkins服务器IP更换

一、查看brew 的 services brew services list 二、编辑 homebrew.mxcl.jenkins-lts.plist 将下面的httpListenAddress值修改为自己的ip 服务器,这里我是用的本机的ip 三 、重新启动 jenkins-lts brew services restart jenkins-lts 四 、浏览器访问 http://10.…

Microchip 32位MCU CAN驱动图文教程-附源码

文章目录 创建一个新的32位MCU工程Microchip MCC Harmony配置界面说明在MCC下配置系统的时钟在MCC下配置所需要使用的模块配置调试打印模块配置CAN模块配置管脚功能修改系统堆栈大小生成代码 添加用户代码 创建一个新的32位MCU工程 确保电脑上已经安装最新的MPlab X IDE、XC32编…

黑龙江—等保测评三级安全设计思路

需求分析 6.1、 系统现状 6.2、 现有措施 目前,信息系统已经采取了下述的安全措施: 1、在物理层面上, 2、在网络层面上, 3、在系统层面上, 4、在应用层面上, 5、在管理层面上, 6.…

几种中文字体的比较

根据自己的喜好给常见的几个中文字体的打分:字体选项 字体名 得分adobe Adobe 宋体 Std 5fandol FandolSong 0founder 方正书宋_GPK 10hanyi 汉仪宋体 6sinotype 华文宋体 3win 中易宋体 9fandol 缺少偏僻字体,故得零分。

数据治理之数据质量管理

一、数据质量概述什么是数据质量数据质量差的危害数据质量维度(数据六大评价标准)什么是数据质量测量数据质量测量必须要有目的数据质量测量必须可重复数据质量测量必须可解释什么是数据质量管理二、数据问题根因分析什么是根因分析为什么要进行根因分析产生数据问题的阶段规…

第十五届蓝桥杯省赛第二场C/C++B组A题【进制】题解(AC)

解题思路 按照题意进行模拟&#xff0c;计算 x x x 的 b b b 进制过程中&#xff0c;若出现余数大于 9 9 9&#xff0c;则说明 x x x 的 b b b 进制一定要用字母进行表示。 #include <iostream> #include <cstring> #include <algorithm> #include &l…

如何用微信发布考试成绩(如月考、期中、期末等)

自教育部《未成年人学校保护规定》颁布后,教育部明确表示:学校不得公开学生的考试成绩、排名等信息!同时学校应采取措施,便利家长知道学生的成绩等学业信息,对于教师来说,如何用微信发布考试成绩(如:月考、期中、期末等)就成了一道难题... 公开吧,会伤害到学生自尊心,甚至被投诉…

implicit declaration of item ‘write’; did him mean ‘fwrite’?

include <unistd.h> implicit declaration of item ‘write’; did him mean ‘fwrite’?Ask QuestionQuestions 2 years, 5 months ago Modified 2 years, 5 months ago Viewed 5k times 0IODIN bundled an case of a uncomplicated note-taking program that uses sav…

TapData + 实时数仓:实时数据如何赋能船舶制造业,助力数字化应用升级和科学管理运营

老牌国有制造企业实践案例:TapData + 实时数仓BI 系统,船舶制造如何基于实时数据平台解决方案实现数字化应用升级和科学管理运营 ?使用 TapData,化繁为简,摆脱手动搭建、维护数据管道的诸多烦扰,轻量代替 OGG、DSG 等同步工具,「CDC + 流处理 + 数据集成」组合拳,加速仓…

数据治理之元数据管理

一、元数据管理概述什么是元数据元数据的3种类型业务元数据技术元数据操作元数据元数据的作用什么是元数据管理元数据管理的目标建立指标解释体系提高数据溯源能力数据质量稽核体系元数据管理的阶段二、元数据管理方法业务目标理解建立企业数据资产目录消除冗余加强数据复用降低…

AHB介绍

1. 关于AHB协议 AMBA AHB是一种适用于高性能可综合设计的总线接口。它定义了组件之间的接口&#xff0c;例如master、互连和slave。 AMBA AHB实现了高性能、高时钟频率系统所需的特性&#xff0c;包括&#xff1a; 突发传输&#xff08;Burst transfers&#xff09;。单时钟…

【pytorch学习】之线性神经网络-图像分类数据集

图像分类数据集 MNIST数据集 (LeCun et al., 1998) 是图像分类中广泛使用的数据集之一,但作为基准数据集过于简单。我们将使用类似但更复杂的Fashion‐MNIST数据集 (Xiao et al., 2017)。 %matplotlib inline import torch import torchvision from torch.utils import data f…

docker的基本命令

基础命令 https://yeasy.gitbook.io/docker_practice/data_management/volume// 容器命令 1. docker command --help 查看对应命令的用法 2. docker ps -a 查看所有docker进程(无论是否在运行) -l最后一次创建的容器 3. docker logs containerId 查看容器日志 4. docker start…

【数据结构】串(String)

文章目录 基本概念顺序存储结构比较当前串与串s的大小取子串插入删除其他构造函数拷贝构造函数扩大数组空间。重载重载重载重载[]重载>>重载<< 链式存储结构链式存储结构链块存储结构 模式匹配朴素的模式匹配算法(BF算法)KMP算法字符串的前缀、后缀和部分匹配值nex…

AI生成内容(AIGC)技术:革新创作与挑战未来

如何看待AIGC技术&#xff1f; 本文将深入探讨人工智能生成内容&#xff08;AIGC&#xff09;技术的发展现状、多领域应用、伦理与风险&#xff0c;以及未来的发展趋势。AIGC技术正在改变信息和创作的景观&#xff0c;本文旨在为读者提供一个全面的视角&#xff0c;了解这一技…