如何安装应用程序(安装程序.exe)使用pywinau

2024-05-29 11:54:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图安装一个应用程序,这是建立使用安装屏蔽(安装程序.exe). 安装过程包含两个要继续的对话框。安装开始FTDI CDM驱动程序,然后继续实际应用程序。需求是使用pywinauto自动安装。问题是如何在没有手动干预的情况下,在安装过程中使用安装程序动态地检测对话框。我用过操作系统()调用安装程序.exe但无法控制里面弹出的对话。在

我使用64位python3.5.2版本

import pywinauto, time, os
from pywinauto.application import Application
sv = os.system("C:\Python_Samples\AutomationScripts\Release_Setup.exe")
app = Application().Connect(title=u'FTDI CDM Drivers', class_name='#32770')
window = app.Dialog
button = window.Button2
button.SetFocus()
button.Click()

Tags: importapp应用程序applicationos过程驱动程序button
1条回答
网友
1楼 · 发布于 2024-05-29 11:54:51

要在没有pywinauto的情况下安装这个驱动程序,您需要devcon.exe实用程序(可以很容易地在google上下载)命令:devcon.exe install ftdibus.inf <hw_id>其中hw_id是设备管理器中设备属性中的“Hardware id”属性(手动右键单击设备的“属性”,转到第二个选项卡并选择“Hardware Ids”组合框项)。在

您尝试检测的对话框可能是信任此制造商的确认对话框。如果您有证书文件要添加到PC上的根证书存储中,通常可以通过certutil命令自动执行。但是D2XX驱动程序没有证书文件,所以您必须使用pywinauto来检测此对话框。在

可以这样做:

from pywinauto import Desktop

popup_dialog = Desktop(backend="win32").window(title="Some title")
# wait up to 10 seconds, return False if timed out
if popup_dialog.exists(timeout=10):
    popup_dialog.Trust.click() # or maybe .click_input()
    popup_dialog.wait_not('visible') # make sure it's gone (raise exception otherwise)

相关问题 更多 >

    热门问题