2015-08-03 2 views
0

Мне любопытно, как я могу сказать, что мое приложение ожидает загрузки моего документа. В настоящее время у меня есть код, который активируется при событии button.click. Часть кода является:Как сообщить приложению VB.NET ждать загрузки документа?

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

Я не уверен, если .process.start это лучший способ открыть Inventor документ Autodesk, но независимо от того, что работает. Проблема заключается в том, что следующая строка, где я присваиваю документ переменной, вызывается до открытия документа. Поэтому я получаю ошибку исключения, потому что документ еще не существует. Что я могу добавить в приложение, которое заставит приложение ждать, пока документ полностью откроется, прежде чем назначать его переменной? Без использования сообщений или threading.sleep.

+1

Нет, этот интерфейс _invApp не связан с процессом, который вы начали. Когда вы создали объект, процесс уже запущен. Посмотрите в диспетчере задач. Вам просто нужно сказать, чтобы загрузить документ. –

ответ

1

Вы уже определили причину вашей проблемы: Вы используете два различных способа связи с приложением третьей стороной:

  1. Process.Start, чтобы открыть файл и
  2. интерфейс автоматизации COM приложения для управления и сохранения файла.

Решение простое: Использовать интерфейс автоматизации COM приложения (_invApp) также для открытия файла. Как это сделать можно найти в документации вашего стороннего приложения.

+0

Ах спасибо. Я использовал process.start, потому что думал, что не существует способа добавить документ из имени файла в программе, но я только что нашел его. – RBuntu

Смежные вопросы