Сообщество программистов Autodesk в СНГ
ADN Club => ObjectARX => Тема начата: Sergey P от 15-01-2015, 15:59:08
-
Здравствуйте эксперты!
Извините если создал тему не в той ветке, создал в наиболее мне близкой. Пожалуйста удалите или переместите куда нужно.
По мере создания arx нужных для моей специальности их появилось некоторое количество. Например 15.
Сейчас пользователи загружают их поочередно через Сервис->Приложения->Автозагрузка.
Но на мой взгляд это не очень удобно, и я хочу создать установщик который:
1. При запуске проверяет открыт ли Автокад и если он открыт то появляется сообщение чтобы его закрыли.
2. Сканирует какие Автокад программы (их версии и виды) установлены на компьютере, чтобы чекбоксами выбрать куда добавить эти ARX
3. Скопировать мои ARX файлы в папки (не важно какие, выбранные мной или пользователем) программ.
4. и прописать пути к этим файлам в реестре.
Каким инсталлятором это можно сделать? Пробовал Inno Setup но не понял как в нем проверять наличие версий Автокад и открыты ли они.
Чем вы пользуетесь для этого, если тем же Inno Setup, может кто-нибудь скинет пример скрипта - как можно проверять наличие установленных программ и как узнать запущены ли они.
Извиняюсь если я не по теме.
Заранее спасибо.
-
Я управлял автозагрузкой следующим образом (http://bushman-andrey.blogspot.ru/2012/11/autocad.html).
-
Каким инсталлятором это можно сделать?
Сугубо моё мнение - напиши свой инсталлятор. Это не так сложно. Зато обеспечит максимальную гибкость.
-
Я управлял автозагрузкой следующим образом (http://bushman-andrey.blogspot.ru/2012/11/autocad.html).
Спасибо, сейчас изучу!
-
Каким инсталлятором это можно сделать?
Сугубо моё мнение - напиши свой инсталлятор. Это не так сложно. Зато обеспечит максимальную гибкость.
Я к сожалению еще не так силен в С++, изучать его начал с примеров ObjectArx.
-
Я к сожалению еще не так силен в С++, изучать его начал с примеров ObjectArx.
Не с того ты начал C++ изучать. Рекомендую Беарне Стровструпа "Программирование. Принципы и практика использования C++". Имхо - самый доходчивый, разжёванный материал от самого создателя C++. А инсталляторы - их можно не только на C++ создавать.
-
Я к сожалению еще не так силен в С++, изучать его начал с примеров ObjectArx.
Не с того ты начал C++ изучать. Рекомендую Беарне Стровструпа "Программирование. Принципы и практика использования C++". Имхо - самый доходчивый, разжёванный материал от самого создателя C++. А инсталляторы - их можно не только на C++ создавать.
Спасибо. Почитаю. сейчас я учу по Стивен Прата
-
Сейчас как раз установщик делаю. Увидел в примере PolySamp, что можно подкорректировать в реестре ветку application, что бы автоматически загружался файл приложения при запуске Autocad. Можно ли подобным образом, через редактирование реестра, добавить путь к папке, что бы открывать файлы через Autocad без указания полного пути, как если бы путь был указан в путях доступа к дополнительным файлам?
-
Какая версия AutoCAD? Если новее 2011, то чем не устроил PackageContents.xml?
-
Версия 2015-2016. Может быть бы и устроил, только сначала нужно разобраться что это :).
-
Может быть бы и устроил, только сначала нужно разобраться что это :).
В документации (желательно в английской, т.к. русская - кривая) AutoCAD 2015-2016 выполни поиск по слову "PackageContents.xml".
-
Можно ли подобным образом, через редактирование реестра, добавить путь к папке, что бы открывать файлы через Autocad без указания полного пути, как если бы путь был указан в путях доступа к дополнительным файлам?
Переведи. О каких файлах вообще идёт речь? И чего ты вообще добиваешься?
-
Переведи. О каких файлах вообще идёт речь? И чего ты вообще добиваешься?
Подозреваю что то, о чём он спрашивает, управляется атрибутом SupportPath xml-элемента RuntimeRequirements в составе конфигурационного файла PackageContents.xml.
-
типы линий, лисп файлы например.
-
Сейчас у меня приложение состоит из cuix файла, который приходиться загружать через _menuload. Кнопки в загружаемом меню содержат скрипты. При нажатии на любую из кнопок скрипт проверяет есть ли такая команда, если нет — загружает файлы приложения. Поэтому первоначально так же вручную в путях доступа приходиться прописывать путь к файлу приложения. Также в папке хранятся собственные типы линий. Идея такая - сделать все по человечески :) -через инсталлер. Но, одновременно, не хочеться переделывать сложившийся механизм работы приложения. Поэтому кроме загрузки приложения, хотелось бы, что бы autocad искал файлы в папке моего приложения.
-
Создай BUNDLE: http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-BC76355D-682B-46ED-B9B7-66C95EEF2BD0
-
Сделал .bundle. Панель подгружается. Теперь autocad ругается что найден исполняемый файл без цифровой подписи в недоверенном местоположении при загрузке lsp файла, при срабатывании скрипта на кнопке. Как это исправить?
-
Как это исправить?
Ты из каких соображений не пользуешься поиском (https://www.google.ru/search?q=AutoCAD+code+signing&ie=utf-8&oe=utf-8&gws_rd=cr&ei=B2KyVtiaOeL4yQOVt5XgCQ)?
-
Сделал .bundle. Панель подгружается. Теперь autocad ругается что найден исполняемый файл без цифровой подписи в недоверенном местоположении при загрузке lsp файла, при срабатывании скрипта на кнопке. Как это исправить?
AutoCAD 2016? Читай: http://adn-cis.org/acad2016-api-news.html
Делай выводы как можно исправить (альтернативные варианты):
1) Подписывать свои приложения
2) Помещать BUNDLE в %ProgramFiles%\Autodesk\ApplicationPlugins
3) Прописать каталог с BUNDLE в TRUSTEDPATHS (не забыть три точки в конце пути, так как нужно оставить доверенными и вложенные каталоги)
-
Сугубо моё мнение - напиши свой инсталлятор. Это не так сложно. Зато обеспечит максимальную гибкость.
Я тоже с этого начинал. На мой взгляд - путь тупиковый. Всё уже давно написано за нас, а главное отлажено и тысячу раз протестировано.
Я, например, использую NSIS (http://nsis.sourceforge.net/Main_Page). К нему есть куча плагинов (http://nsis.sourceforge.net/Category:Plugins), обеспечивающих достаточную для большинства задач гибкость.
-
Я, например, использую NSIS.
Спасибо за ссылку, "будем посмотреть", как говорил мой начальник курса... :)
-
Я, например, использую NSIS. К нему есть куча плагинов, обеспечивающих достаточную для большинства задач гибкость.
Т.е. в простейшем варианте, я беру .bundle (zip) архив, в NSIS выбираю создать на основе архива и в качестве папки для установки указываю
%APPDATA%\Roaming\Autodesk\ApplicationPlugins\
И собственно все. Для какой версии и как загружать описано в PackageContents.xml
Так?
-
Т.е. в простейшем варианте, я беру .bundle (zip) архив, в NSIS выбираю создать на основе архива и в качестве папки для установки указываю
%APPDATA%\Roaming\Autodesk\ApplicationPlugins\
И собственно все. Для какой версии и как загружать описано в PackageContents.xml
Так?
Обозначенный тобой способ и так работает в том шаблоне инсталлятора, который по умолчанию присутствует в VS. Вряд ли для подобного уровня задачи имеет смысл дёргать NSIS (имхо).
-
Обозначенный тобой способ и так работает в том шаблоне инсталлятора, который по умолчанию присутствует в VS. Вряд ли для подобного уровня задачи имеет смысл дёргать NSIS (имхо).
Если ты имеешь в виду InstallShield, то InstallShield Limited Edition for Visual Studio supports Visual Studio Professional, Premium and Ultimate editions. (http://learn.flexerasoftware.com/content/IS-EVAL-InstallShield-Limited-Edition-Visual-Studio)
И у меня в VS Community 2013 он хоть и присутствует в "Добавить новый проект", но при добавлении вообще ничего не происходит и ничего не добавляется.
Так что имеет смысл.
-
Ясно, этот момент я действительно не учёл.
-
Вряд ли для подобного уровня задачи имеет смысл дёргать NSIS (имхо).
Скриптовый язык NSIS весьма тривиален, так что "подёргать" его есть смысл (имхо)...
... и в качестве папки для установки указываю
%APPDATA%\Roaming\Autodesk\ApplicationPlugins\
Правильный путь будет такой: %APPDATA%\Autodesk\ApplicationPlugins\
-
Debalance,
Авторы цитат перепутаны тобой.
-
Подправил.