ADN Club > Civil 3D API
Как определить что запущен именно Civil?
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, если не прошла проверка ключа приложения
Навигация
Перейти к полной версии