ADN Club > Civil 3D API

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

(1/4) > >>

simson43:
Добрый день!

Можно ли определить из какого приложения мы работаем: Autocad или Civil?

Спасибо!

Дмитрий Загорулькин:
Если проверять из приложения, загруженного в AutoCAD/Civil 3D, то можно так:

--- Код - C# [Выбрать] ---/// <summary>/// Является ли запущенный AutoCAD Civil'ом/// </summary>public static bool IsCivilApplication(bool msg){    string rootKeyNumber = null;    Version ver = Application.Version;    bool ret;     if (ver.Major == 19 && ver.Minor == 1)        rootKeyNumber = "D000";    else if (ver.Major == 20 && ver.Minor == 0)        rootKeyNumber = "E000";    else if (ver.Major == 20 && ver.Minor == 1)        rootKeyNumber = "F000";    else if (ver.Major == 21)        rootKeyNumber = "0000";    else if (ver.Major == 22 && ver.Minor == 0)        rootKeyNumber = "1000";    else if (ver.Major == 23 && ver.Minor == 0)        rootKeyNumber = "2000";     if (string.IsNullOrEmpty(rootKeyNumber))    {        ret = false;        if (msg)            Application.ShowAlertDialog                (string.Format("Not supported version: {0}", ver));    }    else    {        ret = HostApplicationServices.Current            .MachineRegistryProductRootKey.Contains(rootKeyNumber);        if (!ret && msg)        {            Application.ShowAlertDialog("It is not Civil 3D!");        }    }     return ret;} Метод далеко не идеален, но работает. Подойдёт для версий 2014-2019. Когда выйдет новая версия, его надо будет изменять.
Если же из внешнего приложения: http://adn-cis.org/eto-ekzemplyar-prilozheniya-civil-3d.html
Ещё один момент: если запущен Civil3D as AutoCAD, то проверка будет считать, что это Civil 3D. Но и как показывает практика, с работой сивильных приложений в таком автокаде нет проблем.

simson43:
Нужно чтоб отличал Civil as Autocad от Civil(
может можно узнать путь запущенного файла? если автокад то в пути будет "AutoCad" светиться
 _____________
хотя у них же один запускаемый файл(

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

--- Цитата: simson43 от 17-12-2018, 13:13:57 ---Нужно чтоб отличал Civil as Autocad от Civil
--- Конец цитаты ---
Хо-хо...

--- Цитата: simson43 от 17-12-2018, 13:13:57 ---может можно узнать путь запущенного файла? если автокад то в пути будет "AutoCad" светиться
--- Конец цитаты ---
Да они с одного файла запускаются...
Civil:

--- Код: ---"D:\Programs\Autodesk\AutoCAD 2019\acad.exe" /ld "D:\Programs\Autodesk\AutoCAD 2019\\AecBase.dbx" /p "<<C3D_Metric>>" /product "C3D" /language "ru-RU"
--- Конец кода ---
Civil as AutoCAD:

--- Код: ---"D:\Programs\Autodesk\AutoCAD 2019\acad.exe"  /P AutoCAD /Product "C3D" /Language "ru-RU"
--- Конец кода ---
То есть, разница только в том, что в AutoCAD не грузится AecBase.dbx и файл профиля другой загружается.

Александр Ривилис:

--- Цитата: simson43 от 17-12-2018, 13:13:57 ---может можно узнать путь запущенного файла?
--- Конец цитаты ---
Запускается один и тот же acad.exe

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии