根据证书信息选择“请选择您用来签名的证书”框中的证书

复制代码
# -*- coding: utf-8 -*-
import uiautomation
import time def choose_one_cert(cert_name): p_names = '' p_names_childern = '' confirm_btn = '' try: p_names = uiautomation.PaneControl(RegexName='统一认证管理平台').WindowControl( RegexName='请选择您用来签名的证书:').GetChildren() except Exception: p_names = uiautomation.PaneControl(RegexName=f'http://xxx').WindowControl( RegexName='请选择您用来签名的证书:').GetChildren() for p_name in p_names: if p_name.Name == '证书列表': p_names_childern = p_name.GetChildren() if p_name.Name == '确认(O)': confirm_btn = p_name for i, _ in enumerate(p_names_childern): if isinstance(_, uiautomation.ListItemControl) and cert_name in _.Name: time.sleep(0.1) _.SendKey(0x28) # _.Click() time.sleep(0.1) confirm_btn.SendKeys('{Alt}o') break
复制代码

 或

复制代码
# -*- coding: UTF-8 -*-
import time

import autoit

'''
autoitv3的python封装实现,使用pyautoit库 https://github.com/jacexh/pyautoit
'''


def _select_cert(cert, up_down):
    flag = 0
    cert_info_ui_old = ''
    while flag == 0:
        cert_info_ui = autoit.control_command("请选择您用来签名的证书:", "ListBox1", "GetCurrentSelection")
        print(cert_info_ui)

        if cert_info_ui_old == cert_info_ui:
            flag = 1

        elif cert not in cert_info_ui:
            autoit.send('{' + up_down + '}')
            cert_info_ui_old = cert_info_ui

        elif cert in cert_info_ui:
            cert_info_ui_list = cert_info_ui.split(',')
            for _ in cert_info_ui_list:
                if cert == _.split('=')[1]:
                    autoit.control_click("请选择您用来签名的证书:", "Button1")
                    flag = 1
                    return True
            else:
                autoit.send('{' + up_down + '}')
                cert_info_ui_old = cert_info_ui
        time.sleep(0.2)


def select_cert(cert):
    autoit.win_activate("请选择您用来签名的证书:")
    autoit.control_click("请选择您用来签名的证书:", "ListBox1")

    # 先down后up原因是,第一次down很可能不是从第一行开始查,而是从中间开始查,原因没找到。
    # 所以往下找不到,就向上找,向上找可以遍历所有
    if _select_cert(cert, 'DOWN'):
        pass
    elif _select_cert(cert, 'UP'):
        pass


if __name__ == '__main__':
    select_cert('rsa1024')
复制代码

 

posted @   你说夕阳很美  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示