• python自动化工具之pywinauto(一个实例)结合pyuserinput


    以下是pywinauto使用指南。这个窗口句柄可以在Spy++中查看 Microsoft Spy++(查看窗口句柄) 10.00.30319 官方最新绿色版

    python自动化工具之pywinauto(一)

    python自动化工具之pywinauto(二)

    python自动化工具之pywinauto(三)

    二、pyuserinput使用方法

    //导入模块
    
    import pymouse,pykeyboard,os,sys
    from pymouse import *
    from pykeyboard import PyKeyboard
    //分别定义一个实例 
    m = PyMouse() 
    k = PyKeyboard()
    
    鼠标操作: 
    m.click(x,y,button,n) –鼠标点击 
    x,y –是坐标位置 
    buttong –1表示左键,2表示点击右键 
    n –点击次数,默认是1次,2表示双击
    
    m.move(x,y) –鼠标移动到坐标(x,y)
    
    x_dim, y_dim = m.screen_size() –获得屏幕尺寸
    
    键盘操作:
    
    k.type_string(‘Hello, World!’) –模拟键盘输入字符串 
    k.press_key(‘H’) –模拟键盘按H键 
    k.release_key(‘H’) –模拟键盘松开H键 
    k.tap_key(“H”) –模拟点击H键 
    k.tap_key(‘H’,n=2,interval=5) –模拟点击H键,2次,每次间隔5秒 
    k.tap_key(k.function_keys[5]) –点击功能键F5 
    k.tap_key(k.numpad_keys[5],3) –点击小键盘5,3次
    
    联合按键模拟 
    例如同时按alt+tab键盘 
    k.press_key(k.alt_key) –按住alt键 
    k.tap_key(k.tab_key) –点击tab键 
    k.release_key(k.alt_key) –松开alt键

    ======

    以下是记事本操作实例。

      1 #! /usr/bin/env python
      2 
      3 
      4 '''
      5 FuncName: johnny-pywinauto.py
      6 Desc: study pywinauto
      7 Date: 2016-10-10 14:30
      8 Author: johnny
      9 Home:http://blog.csdn.net/z_johnny
     10 '''
     11 
     12 from pywinauto import application
     13 from pykeyboard import PyKeyboard
     14 import time
     15 
     16 class Pywin(object):
     17     """
     18     pywin framwork main class
     19     tool_name : 程序名称,支持带路径
     20     windows_name : 窗口名字
     21     """
     22     SLEEP_TIME = 1
     23 
     24     def __init__(self):
     25         """
     26         初始化方法,初始化一个app
     27         """
     28         self.app = application.Application()
     29 
     30     def run(self, tool_name):
     31         """
     32         启动应用程序
     33         """
     34 
     35         self.app.start(tool_name)
     36         time.sleep(1)
     37 
     38     def connect(self, window_name):
     39         """
     40         连接应用程序
     41         app.connect_(path = r"c:windowssystem32
    otepad.exe")
     42         app.connect_(process = 2341)
     43         app.connect_(handle = 0x010f0c)
     44         """
     45         self.app.connect(title = window_name)
     46         time.sleep(1)
     47 
     48     def close(self, window_name):
     49         """
     50         关闭应用程序
     51         """
     52         self.app[window_name].Close()
     53         time.sleep(1)
     54 
     55     def max_window(self, window_name):
     56         """
     57         最大化窗口
     58         """
     59         self.app[window_name].Maximize()
     60         time.sleep(1)
     61 
     62     def menu_click(self, window_name, menulist):
     63         """
     64         菜单点击
     65         """
     66         self.app[window_name].MenuSelect(menulist)
     67         time.sleep(1)
     68 
     69     def input(self, window_name, controller, content):
     70         """
     71         输入内容
     72         """
     73         self.app[window_name][controller].TypeKeys(content)
     74         time.sleep(1)
     75 
     76     def click(self, window_name, controller):
     77         """
     78         鼠标左键点击
     79         example:
     80         下面两个功能相同,下面支持正则表达式
     81         app[u'关于“记事本”'][u'确定'].Click()
     82         app.window_(title_re = u'关于“记事本”').window_(title_re = u'确定').Click()
     83         """
     84         self.app[window_name][controller].Click()
     85         time.sleep(1)
     86 
     87     def double_click(self, window_name, controller, x = 0,y = 0):
     88         """
     89         鼠标左键点击(双击)
     90         """
     91         self.app[window_name][controller].DoubleClick(button = "left", pressed = "",  coords = (x, y))
     92         time.sleep(1)
     93 
     94     def right_click(self, window_name, controller, order):
     95         """
     96         鼠标右键点击,下移进行菜单选择
     97         window_name : 窗口名
     98         controller:区域名
     99         order : 数字,第几个命令
    100         """
    101         self.app[window_name][controller].RightClick()
    102         k = PyKeyboard()
    103         for down in range(order):
    104             k.press_key(k.down_key)
    105             time.sleep(0.5)
    106         k.press_key(k.enter_key)
    107         time.sleep(1)
    108 
    109 if __name__ ==  "__main__":
    110     app = Pywin()
    111     # 记事本例子
    112     tool_name = "notepad.exe"
    113     # 通过Spy++ 获取window_name,即标题文本
    114     window_name = u"无标题 - 记事本"
    115     menulist = u"帮助->关于记事本"
    116     # 通过Spy++ 获取controller,即窗口类名
    117     controller = "Edit"
    118     content = u"johnny"
    119     window_name_new = content + ".txt"
    120     # 启动程序,记事本只能开一个
    121     app.run(tool_name)
    122 
    123     app.connect(window_name)
    124 
    125     # app.max_window(window_name)
    126     app.menu_click(window_name,menulist)
    127     app.click(u'关于记事本', u'确定')
    128     app.input(window_name,controller,content)
    129     # Ctrl + a 全选
    130     app.input(window_name,controller,"^a")
    131     # 选择复制
    132     app.right_click(window_name,controller,3)
    133     #选择粘贴
    134     app.right_click(window_name,controller,4)
    135     k=PyKeyboard()
    136     k.press_key(k.enter_key)
    137     # Ctrl + v 粘贴
    138     app.input(window_name,controller,"^v")
    139     # Ctrl + s 保存
    140     app.input(window_name,controller,"^s")
    141     # 输入文件名
    142     app.input(u"另存为",controller,content)
    143     # 保存
    144     app.click(u"另存为","Button")
    145     try:
    146         app.click(u"确认另存为","Button")
    147     except:
    148         pass
    149     finally:
    150         app.close(window_name_new)
  • 相关阅读:
    20145227&20145201 《信息安全系统设计基础》实验五
    20145227&20145201 《信息安全系统设计基础》实验四
    20145227《信息安全系统设计基础》第十一周学习总结
    20145206 《信息安全系统设计基础》课程总结
    20145206 《信息安全系统设计基础》第十四周学习总结
    20145206 《信息安全系统设计基础》第十三周学习总结
    20145206 《信息安全系统设计基础》第十二周学习总结
    第五周博客实践分析
    《信息安全系统设计基础》第三周问题总结
    《信息安全系统设计基础》 实验五
  • 原文地址:https://www.cnblogs.com/mapu/p/9235587.html
Copyright © 2020-2023  润新知