Windows技巧:轻松连接多进程窗口之一

一、前言

在连接windows窗口的时候,有些同学会遇到一个应用但是打开了几个不同的进程窗口,但是在AirtestIDE搜索窗口只有一个或寻找窗口名称都是统一名称的时候,又应该如何处理呢?那么今天我们一起来探讨下这个问题吧~

二、获取windows应用进程相关信息方式

在需要获取windows应用进程的相关信息,我们需要确保我们的python环境中含有下面几种库,建议在本地的python环境中进行修改,并将AirtestIDEpython环境更换为本地的python环境。

pip install psutil
pip install pywinauto

2.1 获取windows所有进程

可以获取本地计算机上所有正在运行的进程的类实例,并返回一个迭代器,我们可以将我们需要查询的指定参数传入括号内,会以字典的形式去创建一份进程表。

for proc in psutil.process_iter(['pid', 'name', 'create_time']):
    print(proc.info)

2.2 获取进程异常类

有三种不同的获取进程的异常类,我们可以通过异常处理进行跳过或输出报错等。

#当在当前进程列表中找不到具有给定 pid的进程时,或者当进程不再存在时,由类方法引发。
psutil.NoSuchProcess(pid, name=None, msg=None)

#当由于权限不足而拒绝执行操作的权限时, 由类方法引发。
psutil.AccessDenied(pid=None, name=None, msg=None)

#如果超时并且进程仍然存在,则通过方法引发。
psutil.TimeoutExpired(seconds, pid=None, name=None, msg=None)

2.3 判断进程是否有界面

可以通过使用pywinauto库下的 findwindows.find_window(process=pid)获取窗口句柄去进行判断,当获取的窗口句柄长度大于0时,则证明该进程有界面。

def has_gui(pid):
    try:
        windows = findwindows.find_windows(process=pid)
        return len(windows) > 0
    except Exc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值