exe шник не подключается к инвентору

Автор Тема: exe шник не подключается к инвентору  (Прочитано 6370 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн USSR_NicАвтор темы

  • ADN OPEN
  • Сообщений: 18
  • Карма: 0
Здравствуйте. У меня такая проблема: из под Visual Studio все работает на моей машине на ура. Но при попытке запустить exe файл из bin/debug не подключается к инвентору. На других машинаx ехе файл запускается и подключается к инвентору. У всех все работает кроме моей машины. В чем может быть причина того, что из под визуалки все работает, а при запуске ехе нет?
Visual Studio 13
Инвентор 2020

Подключаюсь как внешняя программа так:

Код - vb.net [Выбрать]
  1.         Try 'Попытка получить существующий экземпляр Inventor
  2.             _invApp = CType(System.Runtime.InteropServices.Marshal.
  3.             GetActiveObject("Inventor.Application"), Inventor.Application)
  4.         Catch ex As Exception 'Загрузка Inventor
  5.             MsgBox("Нет возможности подключиться к инвентору.")
  6.             End
  7.             Exit Sub
  8.         End Try
  9.  
или так:

     
Код - vb.net [Выбрать]
  1.   Try
  2.             _invApp = Marshal.GetActiveObject("Inventor.Application")
  3.         Catch ex As Exception
  4.             MsgBox("Нет возможности подключиться к инвентору.")
  5.             End
  6.             Exit Sub
  7.         End Try

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
USSR_Nic,
Тут может быть множество причин. И проблемная установка Inventor, и не та версия используемой .NET Framework.
А какая вообще информация об ошибке?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн USSR_NicАвтор темы

  • ADN OPEN
  • Сообщений: 18
  • Карма: 0
ошибок нет. в представленном выше коде исполняется блок Catch. Т.е. не происходит подключения к инвентору по COM... как будто инвентор не запущен. Если туда вставить запуск инвентора то все подвисает.

Компы у всех одинаковые. И по железу и по софту. Мой отличается тока лучшей видяхой и установленной студией. И много чего еще понаставлено в отличии от остальных... Все лицензионное.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
в представленном выше коде исполняется блок Catch
Убери его, чтобы видеть конкретную ошибку.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн USSR_NicАвтор темы

  • ADN OPEN
  • Сообщений: 18
  • Карма: 0
Убрал весь блок try catch ничего вообще не происходит. Процесс висит в фоновых. Снимаю его - пропадает, но файл ехе не удалить. запущен или нет инвентор вообще не влияет

А, нет. Разница есть. Если инвентор не запущен возникает ошибка


Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
USSR_Nic,
В свойствах проекта указано, что создаётся приложение x64?
Вообще-то при запуске приложения при незапущенном Inventor код должен быть не такой.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн USSR_NicАвтор темы

  • ADN OPEN
  • Сообщений: 18
  • Карма: 0
да.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
USSR_Nic,

Какая версия .NET Framework в свойствах проекта?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн USSR_NicАвтор темы

  • ADN OPEN
  • Сообщений: 18
  • Карма: 0

Оффлайн USSR_NicАвтор темы

  • ADN OPEN
  • Сообщений: 18
  • Карма: 0
.Net Framework 4.5

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: exe шник не подключается к инвентору
« Ответ #10 : 11-01-2022, 18:31:49 »
USSR_Nic,
В конфигурации Release тоже не работает?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн USSR_NicАвтор темы

  • ADN OPEN
  • Сообщений: 18
  • Карма: 0
Re: exe шник не подключается к инвентору
« Ответ #11 : 11-01-2022, 18:36:34 »
То же самое.

Оффлайн USSR_NicАвтор темы

  • ADN OPEN
  • Сообщений: 18
  • Карма: 0
Re: exe шник не подключается к инвентору
« Ответ #12 : 11-01-2022, 19:00:40 »
USSR_Nic,
Вообще-то при запуске приложения при незапущенном Inventor код должен быть не такой.
мне не нужно запускать инвентор если его нет. Нужно просто закрыть программу. Мне кажется я правильно написал. По крайней мере из под студии и на других машинах все работает как мне нужно.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: exe шник не подключается к инвентору
« Ответ #13 : 11-01-2022, 22:30:38 »
мне не нужно запускать инвентор если его нет.
Это я и так понял. Только код ошибки неправильный. Короче говоря это проблема или Windows или Inventor на этой конкретной машине. И я не уверен в возможность это исправить без переустановки Windows.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн USSR_NicАвтор темы

  • ADN OPEN
  • Сообщений: 18
  • Карма: 0
Re: exe шник не подключается к инвентору
« Ответ #14 : 12-01-2022, 15:37:29 »
Грусно... Но в принципе я ща в студии допишу и отлажу прогу, потом ея в AddIn закидывать буду. А там она работать будет прям из инвентора. Так, что может оно и фиг с ним. Но грусно.............

Оффлайн filat

  • ADN Club
  • ****
  • Сообщений: 262
  • Карма: 2
Re: exe шник не подключается к инвентору
« Ответ #15 : 17-01-2022, 10:53:05 »
Попробуй такое обращение:
Код - vb.net [Выбрать]
  1. Dim m_inventorApp As Inventor.Application = Nothing
  2. Try ' попытка найти активный сеанс Inventor
  3. m_inventorApp = System.Runtime.InteropServices .Marshal.GetActiveObject("Inventor.Application")
  4. Catch ex As Exception
  5. End Try
  6. If m_inventorApp Is Nothing Then
  7. 'Сеанс не найден
  8. End If
  9.  

Оффлайн R.I.Chernov

  • ADN Club
  • *****
  • Сообщений: 565
  • Карма: 18
Re: exe шник не подключается к инвентору
« Ответ #16 : 28-04-2022, 00:18:57 »
Всем привет. Не уверен, о той ли проблеме идет речь, так что извиняюсь, если выйдет оффтопик.
В общем бывает такая штука, когда используешь код, что приведу ниже: то работает нормально, а то бывает Marshal.GetActiveObject("Inventor.Application") перестает находить запущенное приложение, вылетает исключение внутри try - catch и создается новый экземпляр приложения.

Лечится тем, что надо запускать инвентор от имени администратора, "ПКМ на ярлык => Свойства => Вкладка 'Ярлык' => Дополнительно => Запуск от имени администратора".
По вашему описанию, что на всех машинах кроме вашей работает, вполне похоже.

Код - C# [Выбрать]
  1. using Inventor;
  2. using System;
  3.  
  4. namespace RIChernov.Launcher
  5. {
  6.     public class Launcher
  7.     {
  8.         public Application GetActiveApplicationOrLaunch()
  9.         {
  10.             Application app = GetActiveApplicationOrNull();
  11.             if (app == null)
  12.             {
  13.                 try
  14.                 {
  15.                     app = Activator.CreateInstance(Type.GetTypeFromProgID
  16.                         (_progID)) as Inventor.Application;
  17.                     app.Visible = true;
  18.                 }
  19.                 catch
  20.                 {
  21.                     throw new Exception("Error: couldn't create Inventor instance");
  22.                 }
  23.             }
  24.             return app;
  25.         }
  26.         public Application GetActiveApplicationOrNull()
  27.         {
  28.             Application app = null;
  29.             try
  30.             {
  31.                 /*
  32.                     чтобы тут работало нормально,
  33.                     надо запускать инвентор от имени администратора
  34.                 */
  35.                 app = System.Runtime.InteropServices.Marshal
  36.                         .GetActiveObject(_progID) as Inventor.Application;
  37.             }
  38.             catch { }
  39.             return app;
  40.         }
  41.         private string _progID = "Inventor.Application";
  42.     }
  43. }

« Последнее редактирование: 28-04-2022, 02:16:54 от R.I.Chernov »
В программировании я новичок...но ненадолго! ;)