Как запустить определенную версию Компас 3D ?

Автор feron, 24.10.20, 19:53:27

« предыдущая - следующая »

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

feron

Приветствую!
В системе установлены несколько версий Компас 3D и как запустить определенную версию средствами vb net?
например установлен Компас 3D v12 LT затем установлен Компас 3D v18 получается что конечная установка перерегиструет все компоненты программы.
однако и при дополнительной действием перерегистрации /register все равно запускается Компас 3D v12 LT
vs видит com библиотеки только версии v18

не вижу других вариантов как через CLSID

Dim myGuid As New Guid("0422828C-F174-495E-AC5D-D31014DBBE87")
Dim processSW As Object = System.Activator.CreateInstance(System.Type.GetTypeFromCLSID(myGuid))
Ikompas = DirectCast(processSW, Kompas6API5.KompasObject)

тоже не сработало.

вариант с поиском exe файла запуска и подключение к нему или разбор реестра где установлен Компас 3D v18 пока не рассматривается

feron

получается что только через реестр можно найти путь к определенному компасу

тут проблема в том что при некоторых политиках контроля систем - для доступа в реестр требуется админские права
а получить их конечному юзеру далеко не просто..

p3452

Цитата: feron от 24.10.20, 19:53:27В системе установлены несколько версий Компас 3D и как запустить определенную версию средствами vb net?

Так же как любой другой исполняемый файл, например через
System.Diagnostics.Process!

333

Путь к текущей установленной версии основного Компас
HKEY_LOCAL_MACHINE\SOFTWARE\ASCON\KOMPAS-3D\CurrentExe
там же и версия
Для LT есть похожий раздел
Для 32 разрядного Компас
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ASCON\KOMPAS-3D

Путь к последнему установленному и зарегистрированному зарегистрированному Компас можно найти через
Поиск в реестре строки KOMPAS.Application
HKEY_CLASSES_ROOT\CLSID\{6B0B5194-4ACD-4095-9BC1-11179FBBB05A}\LocalServer32
32 разрядный может нацтись в подветке WOW6432Node


Можно изменить регистрацию запустив компас из командной строки с правами администратора
путь\kompas.exe -register

333

Через CreateInstance запустится последняя зарегистрированная
причем той разрядности как твое приложение
Другой разрядности можно запустить только разрегистрировав другие
путь к старому компас kompas.exe -unregister
путь к нужному kompas.exe -register
 
Нужную можно запустить только через WinAPI
SellExecute если знаешь нужный путь