当前位置: 首页 > article >正文

pyautogui自动化鼠标键盘操作

pyautogui,用来写自动化脚本,比按键精灵更方便。pyautogui.position()可以获取当前鼠标位置。pyautogui不支持中文输入,利用 pyperclip从剪切板粘贴输入。

# -*- coding: utf-8 -*-
import time
import os
import traceback
import logging
import pyautogui
from logging.handlers import RotatingFileHandler
import pyperclip
pos={"H15":(724,507)
,"D01":(362,507)
,"ELY01":(362,507)
,"ELY36":(486,739)
,"C01":(358,350)}
h=(742-507)/9
w=60
def set_input(value):
    with pyautogui.hold('ctrl'):  # Press the Shift key down and hold it.
        pyautogui.press(['a'])  # Press the left arrow key 4 times.
    pyperclip.copy(value)
    time.sleep(0.3)
    pyautogui.hotkey('Ctrl', 'V')
def fg():
    mouse_click(505,217)
    mouse_click(549,426)#open fg
    set_input("#F95E5E")
    mouse_click(457,441)#open fg
def fg_clear():
    mouse_click(505,217)
    mouse_click(549,426)#open fg
    set_input("#000000")
    mouse_click(457,441)#open fg
def mouse_click(x,y):
    pyautogui.moveTo(x,y)#open fg
    pyautogui.click()
    time.sleep(0.3)
def bg_clear():
    mouse_click(557,217)#open fg
    mouse_click(549+52,426)#open fg
    set_input("#FFFFFF")
    mouse_click(457,441)#open fg
def bg():
    mouse_click(557,217)#open fg
    # time.sleep(0.200)
    mouse_click(549+52,426)#open fg
    set_input("#F95E5E")
    mouse_click(457,441)#open fg
def bj():
    mouse_click(1083,224)#open fg
    mouse_click(908,238)#open fg
    set_input("1")
    mouse_click(1012,299)#open fg
    set_input("#32F92C")
    mouse_click(1008,341)#open fg
    set_input("#32F92C")
    mouse_click(1167,432)#open fg
    # mouse_click(457,441)#open fg
def gs(value):
    mouse_click(411,257)#open fg
    set_input(value)
    mouse_click(330,261)#open fg
def main():
    fg()
    bg()
def toggle_one(x,y):
    logging.info(["pos",x,y])
    mouse_click(x,y)
    fg()
    bg()
    bj()
def toggle_c():
    (x0,y0)=pos["C01"]
    x=x0
    y=y0
    i=1
    while True:
        toggle_one(x,y)
        istr="%02d" % i
        v="=[公式].[if] where [设备编号]='C"+istr+"'"
        logging.info(v)
        gs(v)
        x=x+w*2
        i+=1
        if i>5:
            break
def toggle_d():
    (x0,y0)=pos["D01"]
    x=x0
    y=y0
    i=1
    while True:
        toggle_one(x,y)
        istr="%02d" % i
        v="=[公式].[if] where [设备编号]='D"+istr+"'"
        logging.info(v)
        gs(v)
        y=y+h
        i+=2
        if i>13:
            break
    x=x0+w*2
    y=y0
    i=2
    while True:
        toggle_one(x,y)
        istr="%02d" % i
        v="=[公式].[if] where [设备编号]='D"+istr+"'"
        gs(v)
        y=y+h
        i+=2
        if i>14:
            break  
def toggle_ely1():
    (x0,y0)=pos["ELY01"]
    x=x0
    y=y0
    num=1
    for j in range(5):
        y=y0
        for i in range(7):
            toggle_one(x,y)
            istr="%02d" % num
            v="=[公式].[if] where [设备编号]='ELY"+istr+"'"
            logging.info(v)
            gs(v)
            y=y-h
            num+=1
        x=x+w*2
def toggle_ely36():
    (x0,y0)=pos["ELY36"]
    x=x0
    y=y0
    num=36
    for j in range(2):
        y=y0
        for i in range(7):
            toggle_one(x,y)
            istr="%02d" % num
            v="=[公式].[if] where [设备编号]='ELY"+istr+"'"
            logging.info(v)
            gs(v)
            y=y-h
            num+=1
            if num>48:
                return
        x=x-w*2

def toggle_h():
    (x0,y0)=pos["H15"]
    x=x0
    y=y0
    i=15
    while True:
        toggle_one(x,y)
        v="=[公式].[if] where [设备编号]='H"+str(i)+"'"
        logging.info(v)
        gs(v)
        y=y+h
        i+=2
        if i>33:
            break
    x=x0+w*2
    y=y0
    i=16
    while True:
        toggle_one(x,y)
        v="=[公式].[if] where [设备编号]='H"+str(i)+"'"
        gs(v)
        y=y+h
        i+=2
        if i>34:
            break
if __name__=="__main__":
    import logging
    import sys
    handlers=[RotatingFileHandler(filename="report.log", maxBytes=10*1024*1024, encoding='utf-8',backupCount=3),logging.StreamHandler(sys.stdout)]
    logging.basicConfig(level=logging.DEBUG,
                    format = '%(asctime)s - %(name)s - %(levelname)s -%(funcName)s - %(message)s',
                    handlers=handlers)
    logging.info('begin')
    # toggle_h()
    # toggle_d()
    # toggle_one(724,536)
    # enum1()
    # bj()
    # gs("abc")
    # bg_clear()
    # fg_clear()
    # toggle_c()
    toggle_ely36()


http://www.kler.cn/a/513918.html

相关文章:

  • elementUI Table组件实现表头吸顶效果
  • AI Agent:AutoGPT的使用方法
  • c语言的分支与循环
  • 查看电脑或笔记本CPU的核心数方法及CPU详细信息
  • [HCTF 2018]WarmUp
  • React 中hooks之 React.memo 和 useMemo用法总结
  • Redis 7.0 新特性助力:小红书利用 I/O 多线程模型应对高并发挑战
  • 汽车和工业用激光雷达行业分析
  • C语言练习(16)
  • Ubuntu16.04 安装OpenCV4.5.4 避坑
  • 深度学习之监督学习和无监督学习的探讨
  • ECharts 海量数据渲染性能优化方案
  • “物联网+高职”:VR虚拟仿真实训室的发展前景
  • 【分布式架构设计理论1】架构设计的演进过程
  • 云知声:语音交互领域的技术先锋与创新引擎
  • 一文讲解Redis常见使用方式
  • 高校宿舍信息|基于Spring Boot的高校宿舍信息管理系统的设计与实现(源码+数据库+文档)
  • Httprunner接口测试框架入门
  • 微信小程序使用上拉加载onReachBottom。页面拖不动。一直无法触发上拉的事件。
  • SQL-leetcode—1148. 文章浏览 I
  • tensorflow源码编译在C++环境使用
  • pycharm+pyside6+desinger实现查询汉字笔顺GIF动图
  • Golang Gin系列-5:数据模型和数据库
  • leetcode 407. 接雨水 II
  • 黑马点评之导入数据库
  • CES Asia 2025优惠期即将截止,独特模式助力科技盛会