Python win32com.client因Visio错误而暂停,不会继续执行其余代码

Python win32com.client因Visio错误而暂停,不会继续执行其余代码,python,visio,win32com,Python,Visio,Win32com,我正在打开和归档Visio文件 visio = comclt.Dispatch("Visio.Application") wsh= comclt.Dispatch("WScript.Shell") wsh.AppActivate("Microsoft Visio") for i in os.listdir(path): #loops through the path if i[-3:]=='vsd': #checks to see if it is a visio file

我正在打开和归档Visio文件

visio = comclt.Dispatch("Visio.Application")
wsh= comclt.Dispatch("WScript.Shell")
wsh.AppActivate("Microsoft Visio")

for i in os.listdir(path): #loops through the path
    if i[-3:]=='vsd': #checks to see if it is a visio file
        doc = visio.Documents.Open(path+'\\'+i)
但是,当我打开某些Visio文件时,由于Visio文件是在存在本地模具的其他计算机上创建的,因此出现错误。vss是工作区的一部分,但无法打开。这不是问题,我可以打ok。所以我输入了发送回车键的代码

这是我的问题。我有下面的代码。但它不起作用,因为我认为代码会暂停在doc=visio.Documents.Openpath+'\\'+I上,并且在按下ok之前不会继续。一旦我手动按下ok,代码将休眠2秒钟,然后继续

time.sleep(2)
wsh.AppActivate("Microsoft Visio")
wsh.SendKeys("{ENTER}") 

如何告诉python不要等待doc=visio.Documents.Openpath+'\\'+I?或者是解决此问题的另一种方法?

您可以尝试使用。AlertResponse阻止Visio中的消息框:

i、 e.在打开图表之前,设置

Visio.AlertResponse=1


这样可以防止消息弹出。

我应该把代码放在哪里?你能给我举个例子吗?试着在创建visio之后把它放进去。即:visio=comclt.DispatchVisio.Application visio.AlertResponse=1