如何告诉 VB.NET 应用程序等到文档加载完毕?

Posted

技术标签:

【中文标题】如何告诉 VB.NET 应用程序等到文档加载完毕?【英文标题】:How do I tell a VB.NET app to wait until the document is loaded? 【发布时间】:2015-10-25 15:57:30 【问题描述】:

我很好奇如何让我的应用程序等到我的文档加载完毕。目前,我有一个在 button.click 事件上激活的代码。一段代码是:

System.Diagnostics.Process.Start(oInitialPath & ".idw")
oDrawingDoc = _invApp.Documents.ItemByName(oInitialPath & ".idw")
oDrawingDoc.SaveAs(StripFilename(MyFile) & oNewName & ".idw", False)

我不确定 .process.start 是否是打开 Autodesk Inventor 文档的最佳方式,但不管它是否有效。问题是下一行,我将文档分配给变量,在文档可以打开之前被调用。所以我得到一个异常错误,因为该文档还不存在。我可以放什么让应用程序等到文档完全打开后再将其分配给变量?不使用消息框或 threading.sleep。

【问题讨论】:

不,那个 _invApp 接口与你启动的进程没有关联。当您创建对象时,您已经让进程运行了。用任务管理器看看。你只需要告诉它加载文档。 【参考方案1】:

您已经确定了问题的原因:您使用两种不同的方式与您的第三方应用程序进行通信:

    Process.Start 打开一个文件并 应用程序的 COM 自动化接口来操作和保存文件。

解决方案很简单:使用应用程序的 COM 自动化接口 (_invApp) 来打开文件。如何做到这一点可以在您的第三方应用程序的文档中找到。

【讨论】:

啊,谢谢。我使用了process.start,因为我以为程序中没有办法从文件名中添加文档,但我才找到它。

以上是关于如何告诉 VB.NET 应用程序等到文档加载完毕?的主要内容,如果未能解决你的问题,请参考以下文章

第五章jQuery

PyQt 等到页面加载完毕

VB.NET 通过代码将 Excel 文档加载到 SQL Server 数据库表中

使用 XMLHTTP 方法时等到页面加载完毕

让脚本等到 iframe 加载完毕后再运行

VB.NET CAD开发求助加载程序后如何设置为当前