IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Python自动化学习:pyautogui keyboard 使用 -> 正文阅读

[系统运维]Python自动化学习:pyautogui keyboard 使用

pyautogui

官方文档速览
https://pyautogui.readthedocs.io/en/latest/index.html
在这里插入图片描述

获取鼠标位置

能够实现下面功能:

  • 获取当前鼠标的坐标信息
import pyautogui as pg

pos = pg.position()
print(pos.x,pos.y)

键盘相关

  • 模拟字符串输入
pg.typewrite("hello")
pg.press('1') # 模拟键盘键入
  • 程序睡眠指定的时间,类似于 time.sleep()
pg.sleep(10)
print("hello")

鼠标相关

  • 模拟鼠标操作:移动鼠标
pg.moveTo((35,50))
pg.click() # 鼠标点击

在这里插入图片描述

通过图片定位位置

'''遮挡住图标不行,用扩展屏幕也不行'''
pos = pg.locateAllOnScreen("./img.png")
for p in pos:
    print(p)
D:\Anaconda3\envs\data\python.exe G:/Gait_Reproduce/t.py
Box(left=1277, top=368, width=90, height=58)

Process finished with exit code 0

在这里插入图片描述

参考页面
https://www.jianshu.com/p/8e508c6a05ce
https://www.pianshen.com/article/7555171409/

keyboard

专门的 API 文档如下:
https://github.com/boppreh/keyboard#api

能够实现下述功能:

  • 监听键盘某个键是否按下从而产生事件
while True:
    if k.is_pressed('enter'):
        print("1 is pressed")
  • 等待某个键按下之后再操作后面的代码
    当 “1” 按下之前,不会运行下面的 “hello” 代码
k.wait('1')
print("hello")
  • 模拟键盘按下某个值
while True:
    k.press('1')
  • 全局监听某些操作,并作出反应:
'''首先确定一个事件,通过这个事件来触发内容'''
event = k.KeyboardEvent("down",123,'space')
'''通过一个函数来指定处理策略,这个传入的 x 的类型就是一个 KeyboardEvent 对象,所以要与我们设定的这个对象进行匹配'''
def reply_press(x):
    if x.event_type == event.event_type and x.name == event.name:
        print("pressed down the space")
'''通过 hook 操作,将这些针对某个事件的响应操作 “挂到” 键盘上'''
k.hook(reply_press)
'''等待事件触发,但是后面写的代码内容阻塞住不执行,如果不想让程序阻塞的话,可以不使用 wait'''
# k.wait()

for i in range(100):
    time.sleep(0.5)
    print(i)
'''不使用 wait 后面的程序会依次执行,过程中 hook 指定的响应操作也有效,例如'''

0
1
2
pressed down the space
3
4
5
6
7
8
 pressed down the space
9
10
11
12
pressed down the space
 13
14
15
 pressed down the space
16

Process finished with exit code -1

小训练

  • 通过 keyboard 和 pyautogui 库实现一个小功能:
    • 通过空格来不断获取鼠标所处位置的值
    • 不输入空格的时候不获得鼠标位置
      写法1:
while True:
    if k.is_pressed('space'):
        pos = pg.position()
        print(pos.x,pos.y)
        

写法2:

def generate_position(x):
    event = k.KeyboardEvent("down",190,'space')
    if x.event_type == event.event_type and x.name == event.name:
        pos = pg.position()
        print(pos.x,pos.y)

k.hook(generate_position)

for i in range(100):
    pg.sleep(1)
    print(i)
0
1
 2682 622
2
3
4
5
6
3516 254
 7
8
9
 2668 1015
10
11
 2668 1015
12
13
3030 559
 14
15

Process finished with exit code -1
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:35:20  更:2022-03-06 13:39:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:14:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码