ADN Club > Civil 3D API
Как определить что запущен именно Civil?
Вильдар:
У меня такая проверка, что это Civil - вызвать апи, если не будет исключения, значит Civil
--- Код - C# [Выбрать] ---CivilApplication.ActiveDocument;
Дмитрий Загорулькин:
--- Цитата: Вильдар от 17-12-2018, 14:37:40 ---У меня такая проверка, что это Civil - вызвать апи, если не будет исключения, значит Civil
--- Конец цитаты ---
Тоже, в принципе, вариант! :) Но он не поможет в этом случае:
--- Цитата: simson43 от 17-12-2018, 13:13:57 ---Нужно чтоб отличал Civil as Autocad от Civil(
--- Конец цитаты ---
А так-то, я уже давно этой проверкой не пользуюсь, т.к. в Bundle прописан только Civil3D:
--- Код - XML [Выбрать] ---... <RuntimeRequirements OS="Win64" Platform="Civil3D" SeriesMin="R20.1" SeriesMax="R20.1"/> ...
Привалов Дмитрий:
Еще вариант, проверял на 2015
--- Код - C# [Выбрать] ---HostApplicationServices hs = Autodesk.AutoCAD.DatabaseServices.HostApplicationServices.Current; //Определяем запущенное приложениеstring userRegistryProductRootKey = hs.UserRegistryProductRootKey;//Software\\Autodesk\\AutoCAD\\R20.0\\ACAD-E000:419bool isCivilApp = System.Text.RegularExpressions.Regex.IsMatch(userRegistryProductRootKey, @"ACAD-\w{2}00(\:)");bool isAutoCADApp = System.Text.RegularExpressions.Regex.IsMatch(userRegistryProductRootKey, @"ACAD-\w{2}01(\:)"); dynamic application = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;string applicationName = application.Name;//Autodesk AutoCAD Civil 3D 2015//AutoCAD bool isAutoCAD = isAutoCADApp && applicationName == "AutoCAD";bool isCivil = isCivilApp && applicationName.Contains("Civil 3D");bool isCivilAsAutoCAD = isCivilApp && applicationName == "AutoCAD"; string yearVersion = hs.releaseMarketVersion;//2015string coreVersion = application.Version;//20.0s (LMS Tech)
Навигация
Перейти к полной версии