zoukankan      html  css  js  c++  java
  • python--AutoPy库

    包括用于控制键盘和鼠标,在屏幕上查找颜色和位图以及显示警报的功能 - 所有这些都是以跨平台,高效和简单的方式进行的。适用于Mac OS X,Windows和X11

    中文文档:https://blog.csdn.net/qq_30462003/article/details/100130472   

    安装:pip3 install AutoPy -i https://pypi.douban.com/simple

    一.鼠标移动

    
    
    #autopy.mouse.move(100, 100)  #移动鼠标到指定点--相对于屏幕
    #鼠标直接移到指定点,没有移动过程

    #autopy.mouse.smooth_move(500, 500) #移动鼠标到指定点--相对于屏幕
    # 有直线移动过程

    i=autopy.mouse.location() #返回鼠标的当前位置--相对于屏幕
    #(500.0, 500.0)

    autopy.mouse.toggle(autopy.mouse.Button.LEFT, True) #按下指定鼠标键
    #autopy.mouse.Button.LEFT 鼠标左键
    #autopy.mouse.Button.RIGHT 鼠标右键
    #autopy.mouse.Button.MIDDLE 鼠标中键
    #None 默认左键

    autopy.mouse.toggle(autopy.mouse.Button.LEFT, False) #释放指定鼠标键
    #注意释放,要不然会电脑会一直按着那个键,直到你终止程序

    autopy.mouse.click(None) # 点左键一下,然后松开
    autopy.mouse.click(autopy.mouse.Button.RIGHT) # 点右键一下,然后松开
    autopy.mouse.click(autopy.mouse.Button.LEFT, 3) # 按住左键保持3秒,然后松开

    print(i)
     

    二.键盘

    autopy.key.toggle(autopy.key.Code.UP_ARROW, True, [])  #按下方向键
    autopy.key.toggle(autopy.key.Code.UP_ARROW, False, []) #释放方向键

    autopy.key.toggle(autopy.key.Code.UP_ARROW,True,[autopy.key.Modifier.CONTROL],0) #按键或者释放键
    #参数1 键盘代码(看下表)或键名
    #参数2 True表示按下,False松开
    #参数3 同时按下的修饰键
    #参数4 延迟n秒后再往下执行
    autopy.key.toggle(autopy.key.Code.UP_ARROW, False, [autopy.key.Modifier.CONTROL], 0)
    #注意释放,要不然会电脑会一直按着那个修饰键,直到你终止程序

    autopy.key.tap(autopy.key.Code.CONTROL, [], 2) #对autopy.key.toggle进行的封装,方便使用,按下并自动释放.
    print('xx')

    autopy.key.type_string('Hello123', 0) #输入相应的字符串
    #参数2 每分钟的字符个数,0表示最快

    参数1:键盘代码:

    autopy.key.Code.F1
    autopy.key.Code.F2
    autopy.key.Code.F3
    autopy.key.Code.F4
    autopy.key.Code.F5
    autopy.key.Code.F6
    autopy.key.Code.F7
    autopy.key.Code.F8
    autopy.key.Code.F9
    autopy.key.Code.F10
    autopy.key.Code.F11
    autopy.key.Code.F12

    autopy.key.Code.ALT
    autopy.key.Code.SHIFT
    autopy.key.Code.CONTROL
    autopy.key.Code.META                           win功能键
    autopy.key.Code.BACKSPACE
    autopy.key.Code.DELETE
    autopy.key.Code.CAPS_LOCK
    autopy.key.Code.ESCAPE
    autopy.key.Code.SPACE
    autopy.key.Code.RETURN                        Enter回车键

    autopy.key.Code.HOME
    autopy.key.Code.END
    autopy.key.Code.PAGE_DOWN
    autopy.key.Code.PAGE_UP
    autopy.key.Code.UP_ARROW      向上箭头键
    autopy.key.Code.DOWN_ARROW
    autopy.key.Code.RIGHT_ARROW
    autopy.key.Code.LEFT_ARROW

    参数2:修饰键

    at.key.Modifier.ALT  
    at.key.Modifier.SHIFT  
    at.key.Modifier.CONTROL  
    at.key.Modifier.META win功能键

    三.使用位图

    所有autopy的bitmap都能在autopy.bitmap模块中找到(准确的说,大多数都在autop.bitmap.Bitmap类中找到)

    目前有三种方式在autopy中加载位图:

    1)截取屏幕截图

    2)加载文件

    3)

            tupin=autopy.bitmap.capture_screen(rect=((100,90),(400,100)))  #截屏
            #返回位图对象
            #rect=((100,90),(400,100))   在矩形范围内寻找;(100, 90)是矩形起点坐标;(400, 100)是矩形的宽和高;注意:矩形不要超出屏幕范围否则会报错
            #rect如果省略 截取全屏
            print(type(tupin),tupin)  #<class 'Bitmap'> <Bitmap object at 0x0000000002AB6580>
            rgb=autopy.bitmap.capture_screen().get_color(500,500)  #先截屏,然后返回位图中指定点的颜色(十进制形式)
            # 16775907
            #指定坐标--相对于屏幕
            print(rgb)
            rgb16=hex(rgb)   #转化成16进制   0xfffae3
            print(rgb16)
            pcolor=autopy.screen.get_color(500, 500)  #返回屏幕指定点颜色--十进制形式
            print(pcolor)
            c=autopy.color.hex_to_rgb(pcolor) #十进制颜色值转换成RGB形式颜色值
            #(153, 204, 255)
            c=autopy.color.rgb_to_hex(255, 0, 0)  #把RGB转换成十进制形式( 16711680)
            print('c=',c)
    
            tupin.save('lm.jpeg')  #保存图片
            #AutoPy目前只支持BMP(特别慢)、jpeg和PNG文件类型
    
            i=autopy.screen.scale()  #返回一个坐标点(point)中含有几个像素点(pixel)
            i=autopy.screen.size()  #返回屏幕的坐标点尺寸--坐标点数
            #(1920.0, 1080.0)
    
            i=autopy.screen.is_point_visible(500,500)  #返回布尔类型,如果这个坐标点在屏幕的边界内则True,否则False
    
            tu=autopy.bitmap.Bitmap.open('马.png')  #加载位图
            i=tu.get_color(0,80)  #返回指定点的颜色--十进制形式
    
            i=tu.find_color((227, 246, 252),tolerance=0,start_point=(101,101))  #寻找指定颜色-返回找到的第一个点
            #如果找到返回坐标(0.0, 80.0),如果没找到返回None
            #参数1  RGB-元组
            #tolerance   是一个在[0,1]之间的float值,为0时是精确匹配--默认0,为1时将匹配所有-----匹配精度
            #start_point   开始寻找点
            #【个人:先循环纵坐标,再循环横坐标】
    
            i = tu.find_color((227, 246, 252), tolerance=0, rect=((100,100),(200,200)))
            #返回值不在矩形范围内   不知道怎么回事,请知道的私密我告诉我,万分感谢  ???????
    
            i=tu.find_every_color((227, 246, 252))  # 寻找指定颜色的坐标-返回找到的所有点
            #[(0.0, 80.0), (0.0, 95.0), (0.0, 143.0), (2.0, 95.0), (4.0, 288.0), (4.0, 289.0), (4.0, 290.0), (4.0, 291.0), (4.0, 292.0), (4.0, 293.0), (4.0, 294.0), (4.0, 295.0), (4.0, 304.0), (4.0, 305.0), (4.0, 306.0), (4.0, 307.0), (4.0, 308.0), (4.0, 309.0), (4.0, 310.0), (4.0, 311.0), (4.0, 312.0), (4.0, 313.0), (4.0, 314.0), (4.0,315.0), (4.0, 316.0), (4.0, 317.0), (4.0, 318.0), (4.0, 319.0), (5.0, 95.0), (20.0, 192.0), (21.0, 192.0), (22.0, 6.0), (23.0, 6.0), (33.0, 216.0), (39.0, 216.0),(64.0, 201.0), (95.0, 168.0), (139.0, 220.0), (146.0, 344.0), (147.0, 344.0), (166.0, 332.0), (166.0, 333.0), (166.0, 340.0), (166.0, 341.0), (167.0, 332.0), (167.0, 333.0), (178.0, 315.0), (178.0, 316.0), (178.0, 317.0), (185.0, 341.0), (231.0, 303.0), (233.0, 304.0), (274.0, 319.0), (275.0, 319.0), (296.0, 351.0), (304.0,345.0), (305.0, 344.0), (307.0, 105.0), (313.0, 100.0), (314.0, 345.0), (315.0, 345.0), (328.0, 346.0), (368.0, 348.0), (374.0, 354.0), (392.0, 66.0), (395.0, 358.0), (427.0, 289.0), (427.0, 290.0), (450.0, 351.0), (479.0, 226.0), (479.0, 227.0), (479.0, 237.0), (479.0, 238.0), (480.0, 224.0), (481.0, 223.0), (483.0, 303.0),(484.0, 288.0), (484.0, 312.0), (484.0, 313.0), (485.0, 288.0), (485.0, 312.0), (485.0, 313.0), (504.0, 217.0), (505.0, 217.0), (510.0, 191.0), (511.0, 4.0), (511.0, 43.0), (513.0, 170.0), (521.0, 106.0), (526.0, 95.0), (527.0, 94.0), (527.0, 95.0), (543.0, 126.0), (544.0, 42.0), (544.0, 43.0), (544.0, 171.0), (545.0, 42.0)]
            x=tu.count_of_color((227, 246, 252))  #返回指定颜色的总点数
    
            i=tu.point_in_bounds(549,100)  #判断指定坐标是否在图内
            #指定坐标在图内返回True ,不在图内返回False
    
            i=tu.rect_in_bounds(((500,300),(51,10)))  #给出的矩形全部包含在图的边界中,返回True
            #(500,300)  矩形的左上角坐标
            #(51,10)  宽和高
    
            tu1 = autopy.bitmap.Bitmap.open('马眼.png')
            i=tu.find_bitmap(tu1,tolerance=0,rect=((100,90),(400,10)),start_point=(450,80))   #找图
            #在tu图中寻找图tu1,找到返回第一个坐标,没找到返回None
            #tolerance   是一个在[0,1]之间的float值,为0时是精确匹配--默认0,为1时将匹配所有-----匹配精度
            #start_point=(450,80)   开始寻找点--相对于图片的坐标
            #rect = ((100, 90), (400, 10))   在矩形范围内寻找;(100, 90)是矩形起点坐标;(400, 10)是矩形的宽和高;注意:矩形不要超出图片范围否则会报错
            #(486.0, 92.0)
            i=tu.find_every_bitmap(tu1)  #找图
            #返回找到的所有坐标--[(486.0, 92.0)]
            i=tu.count_of_bitmap(tu1)  #返回找到图像的数量
            tu2=tu.cropped(rect=((100,100),(200,200)))  #从tu图中截取图像,返回新图像
            #rect截取范围
            tu2.save('tu2.jpeg')
    
            i=tu1.is_bitmap_equal(tu2)  #判断两个图像是否相等
            #tolerance   是一个在[0,1]之间的float值,为0时是精确匹配--默认0,为1时将匹配所有-----匹配精度
    
    
    
            print(i)

    四.弹窗 

    autopy.alert.alert('hello','python world','1','2')

    参数1:弹窗信息内容

    参数2:弹窗信息标题

    参数3:无法设置。由于Win32 API的限制,Windows当前替换 default_button为“确定”(如果给定)

    参数4:无法设置。由于Win32 API的限制,Windows当前替换 cancel_button(如果给定)替换为“取消”。

    确定按钮返回True,取消按钮返回False

    以上代码下载:https://pan.baidu.com/s/1k4XMrgOZCWxwkTxTG6C3YA  

  • 相关阅读:
    www.insidesql.org
    kevinekline----------------- SQLSERVER MVP
    Sys.dm_os_wait_stats Sys.dm_performance_counters
    如何使用 DBCC MEMORYSTATUS 命令来监视 SQL Server 2005 中的内存使用情况
    VITAM POST MORTEM – ANALYZING DEADLOCKED SCHEDULERS MINI DUMP FROM SQL SERVER
    Cargo, Rust’s Package Manager
    建筑识图入门(初学者 入门)
    Tracing SQL Queries in Real Time for MySQL Databases using WinDbg and Basic Assembler Knowledge
    Microsoft SQL Server R Services
    The Rambling DBA: Jonathan Kehayias
  • 原文地址:https://www.cnblogs.com/liming19680104/p/11936196.html
Copyright © 2011-2022 走看看