ADN Club > Civil 3D API

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

<< < (3/4) > >>

simson43:
дак такой вариант уже неплох)
у Civil называется в моем случае civil этот файл.

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

--- Цитата: simson43 от 17-12-2018, 13:40:12 ---у Civil называется в моем случае civil этот файл.
--- Конец цитаты ---
Странно:

--- Код: ---Команда: MENUNAME
MENUNAME = "C:\Users\<MyUserName>\AppData\Roaming\Autodesk\C3D 2019\rus\support\C3D" (только чтение)
--- Конец кода ---

simson43:
по тому пути лежит и файл с именем "c3d"
поэтому я проверяю наличие в названии файла или civil или 3d

simson43:
Может кому то будет полезно

--- Код - C# [Выбрать] ---public static bool IsCivil3D()        {            string nameCUIX = Path.GetFileName(Application.TryGetSystemVariable("MENUNAME") as string);             return (nameCUIX.IndexOf("civil", StringComparison.OrdinalIgnoreCase) > 0 ||                nameCUIX.IndexOf("3d", StringComparison.OrdinalIgnoreCase) > 0);        }

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

--- Код - C# [Выбрать] ---/// <summary>/// Является ли запущенный AutoCAD Civil'ом/// </summary>public static bool IsCivilApplication(bool checkForCuix){    bool checkApp() => Regex            .Match                (HostApplicationServices.Current.MachineRegistryProductRootKey,                @"ACAD-\w000:\d{3}$",                RegexOptions.IgnoreCase | RegexOptions.CultureInvariant)            .Success;     bool checkCuix() =>         !checkForCuix         || Regex             .Match                 ((string)Application.GetSystemVariable("menuname"),                 "(c3d|civil)$",                 RegexOptions.IgnoreCase | RegexOptions.CultureInvariant)             .Success;     return checkApp() && checkCuix();}  
P.S. Немного исправил, чтобы не было проверки Cuix, если не прошла проверка ключа приложения

Навигация

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

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

[*] Предыдущая страница

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