首页 > 其他分享 >连接app的封装方法

连接app的封装方法

时间:2023-06-23 19:33:12浏览次数:44  
标签:None retry 封装 app param proc 连接 backend

import psutil
from pywinauto.application import Application
from pywinauto import Desktop, WindowSpecification


class ConnApp:

    @staticmethod
    def conn_single_proc_app(proc_name: str, proc_path: str, app_backend: str = "win32",
                             wait_time: int | float | None = None,
                             retry_freq: int | float | None = None) -> Application:
        """
        连接单进程应用
        :param proc_name: 进程名
        :param proc_path: 进程路径
        :param app_backend: 应用后端
        :param wait_time: 等待时间
        :param retry_freq: 重试频率
        :return: 应用
        """
        # 获取进程id
        proc_id = None
        for proc in psutil.process_iter():
            if proc.name() == proc_name:
                proc_id = proc.pid
                break

        app = Application(backend=app_backend)

        # 连接应用
        if proc_id is None:
            app.start(cmd_line=proc_path, timeout=wait_time, retry_interval=retry_freq)
        else:
            app.connect(process=proc_id, timeout=wait_time, retry_interval=retry_freq)

        return app

    @staticmethod
    def conn_multi_proc_app(dlg_title: str, app_backend: str = "win32") -> WindowSpecification:
        """
        连接多进程应用
        :param dlg_title: 对话框标题
        :param app_backend: 应用后端
        :return: 对话框
        """
        desktop = Desktop(backend=app_backend)

        # 获取对话框
        dlg = desktop.window(title=dlg_title)

        return dlg

 

标签:None,retry,封装,app,param,proc,连接,backend
From: https://www.cnblogs.com/monkeyDragon/p/17500052.html

相关文章

  • Java基础之基本数据类型封装类的缓存
    巨人的肩膀:https://blog.csdn.net/hnjcxy/article/details/1237872091、Java中基本数据类型byte、short、char、int、long、float、double、boolean有对应的封装类型:Byte、Short、Character、Integer、long、Float、Double,Boolean其中Byte、Short、Character、Integer、Long、Bo......
  • idea的创建与使用mapper映射文件
    一.创建mapper映射文件在设置中模板<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="&......
  • Dapper简单使用读写分离
    usingDapper;usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Threading.Tasks;usingSystem.Linq;usingCloudCubic.Common.LogHelper;usingCloudcubic.Common;usingSystem.Diagnostics;namespace......
  • sloans的application.properties
    #应用名称spring.application.name=spbsloans#应用服务WEB访问端口server.port=8999server.servlet.context-path=/spbsloans#配置mybatis##配置数据源信息spring.datasource.username=rootspring.datasource.password=rootspring.datasource.url=jdbc:mysql://l......
  • 前端Vue自定义简单实用轮播图封装组件 快速实现轮播图
    前端Vue自定义简单实用轮播图封装组件快速实现轮播图,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13153效果图如下:cc-mySwiper使用方法<!--自定义轮播图swiperArr:轮播数组 @swiperItemClick:轮播图条目点击--><cc-mySwiper:swi......
  • vMware-Centos7网络连接设置
    原文链接:https://blog.csdn.net/zacry/article/details/124229889VmWare12.5.9build-7535481安装CentOS-7-x86_64-Minimal-1810.iso位无法上网怎么办?1.关闭防火墙systemctlstopfirewalld.service#关闭systemctlrestartfirewalld.service#重启2.虚拟机->设置->网......
  • SecureCRT连接服务器老是掉线,怎么办
    方法/步骤首先,打开你的SecureCRT软件然后点击选项点击全局选项点击默认会话点击编辑默认会话进入到编辑界面了,点击终端,这里有一个发送协议NO-OP选中它,开启了。点击确定,之后服务器就不会断线了注意事项tips:SecureCRT版本都适用的......
  • Uniapp仿ChatGPT Stream流式输出(非Websocket)
    前言最近写一个chagpt小程序,流式输出可以使用websocket也可以使用stream来实现,这里就不折腾websocket的了,我发现uniapp实现流式输出的方式挺多的,主要是有些小程序还不兼容,花了点时间研究了一下。EventSourceEventSource也称为SSE(Server-SentEvents),是服务器推送的一个网络事件......
  • org.springframework.boot.builder.SpringApplicationBuilder.init([LjavalangObject;
    一SpringBoot2.0.4集成SpringCloud异常:org.springframework.boot.builder.SpringApplicationBuilder.([Ljava/lang/Object;)V二、异常处理参考:缘起初学springcloud的朋友可能不知道,其实SpringBoot与SpringCloud需要版本对应,否则可能会造成很多意料之外的错误,比如eureka注册了......
  • Tomcat项目不放在webapps下放在别的盘符目录下的配置
    一、项目不放在tomcat下的webapps下,而是放在别的盘符路径下,在service.xml中加以配置即可,配置如下:<HostappBase="webapps"autoDeploy="true"name="localhost"unpackWARs="true"xmlNamespaceAware="false"xmlValidation="false">......