Как определить что запущен именно Civil?

Автор Тема: Как определить что запущен именно Civil?  (Прочитано 8216 раз)

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

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 405
  • Карма: 77
  • Skype: vildar82
У меня такая проверка, что это Civil - вызвать апи, если не будет исключения, значит Civil
Код - C# [Выбрать]
  1. CivilApplication.ActiveDocument;

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
У меня такая проверка, что это Civil - вызвать апи, если не будет исключения, значит Civil
Тоже, в принципе, вариант! :) Но он не поможет в этом случае:
Нужно чтоб отличал Civil as Autocad от Civil(

А так-то, я уже давно этой проверкой не пользуюсь, т.к. в Bundle прописан только Civil3D:
Код - XML [Выбрать]
  1. ...
  2.  
  3. <RuntimeRequirements
  4.  OS="Win64"
  5.  Platform="Civil3D"
  6.  SeriesMin="R20.1"
  7.  SeriesMax="R20.1"/>
  8.  
  9. ...
  10.  

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 536
  • Карма: 117
Еще вариант, проверял на 2015


Код - C# [Выбрать]
  1. HostApplicationServices hs = Autodesk.AutoCAD.DatabaseServices.HostApplicationServices.Current;
  2.                        
  3. //Определяем запущенное приложение
  4. string userRegistryProductRootKey = hs.UserRegistryProductRootKey;//Software\\Autodesk\\AutoCAD\\R20.0\\ACAD-E000:419
  5. bool isCivilApp = System.Text.RegularExpressions.Regex.IsMatch(userRegistryProductRootKey, @"ACAD-\w{2}00(\:)");
  6. bool isAutoCADApp = System.Text.RegularExpressions.Regex.IsMatch(userRegistryProductRootKey, @"ACAD-\w{2}01(\:)");
  7.  
  8. dynamic application = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
  9. string applicationName = application.Name;
  10. //Autodesk AutoCAD Civil 3D 2015
  11. //AutoCAD
  12.  
  13. bool isAutoCAD = isAutoCADApp && applicationName == "AutoCAD";
  14. bool isCivil = isCivilApp && applicationName.Contains("Civil 3D");
  15. bool isCivilAsAutoCAD = isCivilApp && applicationName == "AutoCAD";
  16.  
  17. string yearVersion = hs.releaseMarketVersion;//2015
  18. string coreVersion = application.Version;//20.0s (LMS Tech)