windows自动化python模块使用小记(pymouse, pykeykoard, win32con, win32gui, uiautomation)

pymouse, pykeykoard模块

安装

pip install pyuserinput

个人感觉对于远程控制来说不是很好使用,直接在pycharm的IDE中使用妥妥的,但是在终端运行,或者远程去运行放在本地的脚本就时灵时不灵那种,特别是快捷键。本来想用这两个模块实现一个缩小窗口的功能,结果压根点不动,给了正确的x,y坐标也不好使

win32con, win32gui模块

成功使用该模块完成远程窗口置顶功能

'''

python 自动化测试

'''

import win32con

import win32gui

import time

'''

hwnd = win32gui.FindWindow(lpClassName=None, lpWindowName=None) # 查找窗口,不找子窗口,返回值为0表示未找到窗口

hwnd = win32gui.FindWindowEx(hwndParent=0, hwndChildAfter=0, lpszClass=None, lpszWindow=None) # 查找子窗口,返回值为0表示未找到子窗口

win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)

SW_HIDE:隐藏窗口并激活其他窗口。nCmdShow=0。

SW_SHOWNORMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。nCmdShow=1。

SW_SHOWMINIMIZED:激活窗口并将其最小化。nCmdShow=2。

SW_SHOWMAXIMIZED:激活窗口并将其最大化。nCmdShow=3。

SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。nCmdShow=4。

SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。nCmdShow=5。

SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。nCmdShow=6。

SW_SHOWMINNOACTIVE:窗口最小化,激活窗口仍然维持激活状态。nCmdShow=7。

SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。nCmdShow=8。

SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。nCmdShow=9。

'''

# 先等待3秒

# time.sleep(3)

# 查找窗口句柄

# hwnd = win32gui.FindWindow("#32770", u"登录 Debug模式")
hwnd = win32gui.FindWindow("#32770", u"模块名称")
print(hwnd)

if hwnd != 0:
    # 若最小化,则将其显示,反之则最小化
    if win32gui.IsIconic(hwnd):
        win32gui.ShowWindow(hwnd, win32con.SW_SHOWMAXIMIZED)
    else:
        win32gui.ShowWindow(hwnd, win32con.SW_SHOWMINIMIZED)
        win32gui.SetForegroundWindow(hwnd) # 设置前置窗口
        # win32gui.SetFocus(hwnd) # 设置聚焦窗口
        # 关闭窗口
        win32gui.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0)

uiautomation

该模块完全依赖handle操控界面元素,不在所控制程序内的就不是很好去控制。比如说该程序被弹出来的cmd给遮盖了,找到该程序的界面元素就变得很困难

最终实现方式

WinAppDriver+win32gui,远程点击+保持界面在前,总所周知,Appium是一个跨平台的软件,WinAppDriver的example示例是Appium版本0.24,selenium版本3.5.0,此时WinAppDriver的最新版本是v1.3。如果操控Mac用的是appium Mac2的话,appium要求是2.6.0以上,2.6.0的python模块和v1.3的WinAppDriver是不匹配的,2.6.0的appium都会在前面加上appium:前缀,而WinAppDriver是不需要添加前缀的。所以使用WinAppDriver需要注意appium版本的问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值