0x10 Не загружают приложение.
Значение RegistryPathWhereLoaderIsSpecified должно идентифицировать путь системного реестра для собственного раздела приложения системного реестра.
ObjectARX API включает acrxRegisterApp () функция, которая может использоваться в Приложении ObjectArx, чтобы ввести информацию относительно приложения в раздел AutoCAD системного реестра. Как правило, acrxRegisterApp () ввел бы эту информацию, первый раз, когда приложение загружен, и подтверждать присутствие той информации относительно последующих загрузок.
Создание ключей и значений приложения ObjectArx
Программа инсталляции приложения ObjectARX должна быть разработана, чтобы управлять разделом приложения системного реестра. Этот раздел системного реестра должен включить клавиши{*ключи*} и значения, идентифицирующие основной модуль приложения и набора команд для приложения.
Значение в клавише{*ключе*} Loader должно включить полный путь и имя файла модуля, который AutoCAD должен загрузиться сначала. Модуль загрузчика впоследствии ответствен за загрузку любых других модулей, которые составляют приложение.
Следующий пример иллюстрирует размещение и типы значения прикладного раздела системного системного реестра:
\\ HKEY_LOCAL_MACHINE\SOFTWARE\
...
RegistryPathWhereLoaderIsIdentified\
Loader\Module:REG_SZ:DirPathFileName
Name\DescriptiveName:REG_SZ:User Friendly App Name
Commands\GlobalCommandName1:REG_SZ:LocalCommandName1
GlobalCommandName2:REG_SZ:LocalCommandName2
GlobalCommandName3:REG_SZ:LocalCommandName3
GlobalCommandName4:REG_SZ:LocalCommandName4
GlobalCommandName5:REG_SZ:LocalCommandName5
Groups\
GroupName:REG_SZ:GroupName
...
Значение Модуля должно присутствовать, но не используется кроме как метка - заполнитель в системном реестре. Точно так же Название{*имя*} Приложения Дружественный к пользователю должно присутствовать, но в настоящее время не используется.
Значение в клавише{*ключе*} Groups может использоваться, чтобы уникально идентифицировать группы команд приложений ObjectARX и поэтому команды также.
Удаление Системной Информации Системного реестра
Может быть полезно удалить информацию Приложения ObjectArx от системного реестра, если приложение модернизировано или удалено. ObjectARX API включает функцию acrxUnregisterApp (), который является коллегой acrxRegisterApp (). Это удаляет информацию относительно приложения от раздела AutoCAD системного реестра.
Системная переменная DEMANDLOAD
AutoCAD DEMANDLOAD переменная системы управляет опциями загрузки запроса Приложений ObjectArx. По умолчанию DEMANDLOAD системная переменная установлена (когда AutoCAD установлен) чтобы допустить загрузке запроса приложений на обращении команды или на полномочном обнаружении, когда любая опция определена в системном входе системного реестра для приложения. Установка DEMANDLOAD не затрагивает загрузку запроса на запуске AutoCAD, или по запросу пользователем или приложением, когда любая из этих опций определена в системном системном реестре. (См. “ Создание Дополнительных клавиш AutoCAD и Значений ” на странице 48).
Законные значения для системной переменной могут использоваться в комбинации.
Они определены следующим образом:
0 Отключает загрузку запроса всех Приложений ObjectArx.
1 Допускает загрузке запроса Приложений ObjectArx после обнаружения полномочных объектов{*целей*}.
2 Допускает загрузке запроса Приложений ObjectArx на обращение команды.
3 Допускает загрузке запроса для и полномочных объектов{*целей*} и обращения команды (значение по умолчанию).
DEMANDLOAD системная переменная позволяет пользователю отключать загрузку запроса всех Приложений ObjectArx, которые имеют системные параметры настройки системного реестра, определяющие загрузку запроса на обращении команды, и полномочном обнаружении. Это не может заставлять приложение быть загруженным запросом, если соответствующие системные параметры настройки системного реестра не существуют.
Загрузка Запроса на Обнаружении Заказных Объектов{*целей*}
Когда DWG или DXF файл, содержащий заказные объекты загружен, AutoCAD определяет, действительно ли приложение - обработчик загружено. Если приложение не загружено, и первый бит переменной системы DEMANDLOAD установлен, AutoCAD ищет системный реестр системы Windows информацию относительно приложения и его модуля загрузчика. Если AutoCAD находит соответствующую информацию в системном реестре, это загружает приложение.
ОБРАТИТЕ ВНИМАНИЕ, что загрузка Запроса на обнаружении заказных классов будет только работать с классами, которые получены из AcDbObject, или непосредственно или косвенно.
Как гипотетический пример, давайте предполагать, что AutoCAD читает файл, созданный Приложением ObjectArx polysamp (изделие{*программа*} PolySamp компании).
1 После чтения чертежного файла, AutoCAD сталкивается с заказными объектами{*целями*}, созданными с приложением polysamp, и решает, что приложение не загружено.
2 AutoCAD находит, что DEMANDLOAD системная переменная установлена, чтобы допустить загрузке запроса приложений на полномочном обнаружении, так что это ищет раздел Приложений AutoCAD системного реестра для polysamp клавиши{*ключа*}.
В пределах этой клавиши{*ключа*}, это находит значение LoadCtrls, которое определяет условия{*состояния*}, при которых приложение должно быть загружено, и значение RegPath, которое обеспечивает полный путь системного реестра для polysamp модуля. Этот раздел системного реестра смотрел бы кое-что вроде этого:
\\HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R15.0\
ACAD-1:409\
Applications\PolyCAD\
LoadCtrls:REG_DWORD:0xd
RegPath:REG_SZ:
\\HKEY_LOCAL_MACHINE\SOFTWARE\PolySampInc\polysamp
3 AutoCAD читает polysamp\Loader клавишу{*ключ*}, чтобы определить каталог, путь, и имя файла модуля, который будет загружен. Этот раздел каталога смотрел бы кое-что вроде этого:
\\ HKEY_LOCAL_MACHINE\SOFTWARE\
PolySampInc\polysamp\
Loader\MODULE:REG_SZ:c:\polysampinc\arx\polyui. arx
Name\PolySamp:REG_SZ:PolyCad
4 AutoCAD тогда пытается загружать ObjectARX модуль. Если загрузки модуля успешно, AutoCAD прибавляет маркер{*дескриптор*} приложения к списку прикладных маркеров{*дескрипторов*}, которые будут посланы kLoadDwgMsg сообщение. AutoCAD тогда подтверждает{*проверяет*}, что приложение было загружено должным образом, и подтверждает{*проверяет*}, что заказной класс зарегистрирован. Если приложение было загружено успешно, AutoCAD продолжится
Загружать чертежный файл. Если ObjectARX модуль не может быть загружен, или если все еще не имеется выполнения класса, доступные, заказные объекты{*цели*} обработаны как proxies, и загрузка продолжается.
Загрузка Запроса на Команде
AutoCAD будет пытаться загружать соответствующее Приложение ObjectArx, если пользователь вызывает команду, которая не зарегистрирована с AutoCAD.
Чтобы поддерживать загрузку запроса на обращении команды, программа инсталляции приложения ObjectARX должна создать соответствующие клавиши{*ключи*} и значения в системном реестре для команд приложения. Раздел приложения Commands системного реестра должен содержать информацию команды подобно этому:
\\ HKEY_LOCAL_MACHINE\SOFTWARE\
Autodesk\ ...
...
PolySampInc\polysamp\
Loader\MODULE:REG_SZ:c:\polysampinc\arx\polyui. arx
Name\PolySamp:REG_SZ:PolyCad
Commands\
ASDKPOLY:REG_SZ:ASDKPOLY
ASDKDRAGPOLY:REG_SZ:ASDKDRAGPOLY
ASDKPOLYEDIT:REG_SZ:ASDKPOLYEDIT
Groups\
ASDK:REG_SZ:ASDK
...
В этом примере, зарегистрированный префикс разработчика разработчика (ASDK) используется как префикс для всех команд, чтобы гарантировать, что не будет иметься никакого возможного конфликта с командами того же самого названия{*имени*} в других приложениях.
Приложение ObjectArx должно также включить соответствующие запросы к acedRegCmds макрокоманде для загрузки запроса на команде, чтобы работать.
Загрузка Запроса на Запуске AutoCAD
Загрузка Запроса Приложения ObjectArx на запуске AutoCAD может быть определена, используя 0x02 (или Вы можете исполнять ИЛИ 0x02 с другим законным значением) со значением LoadCtrls в системном реестре, как показано здесь.
\\HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R15.0\
ACAD-1:409\
Applications\PolyCAD\
LoadCtrls:REG_DWORD:0x02
RegPath:REG_SZ:
Управление Приложениями с Системным реестром
Как только системная информация системного реестра была создана для загрузки запроса, что та же самая информация может использоваться набором функций ObjectARX, чтобы загружать, разгрузить, и контролировать присутствие Приложений ObjectArx, независимых от загружающей запроса особенности. Параметр AppName, используемый первой двумя из этих функций - логическое прикладное название{*имя*}.
Следующие функции ObjectARX могут использоваться с зарегистрированными прикладными названиями{*именами*}:
Bool acrxLoadApp ("AppName")
Эта функция берет одиночный параметр, который представляет случай{*регистр*} - нечувствительное логическое название{*имя*} приложения, которое будет загружено. Функция возвратилась бы 0, если загрузка потерпела неудачу, или 1, если загрузка преуспевает.
Bool acrxUnloadApp ("AppName")
Эта функция берет одиночный параметр, который представляет случай{*регистр*} - нечувствительное логическое название{*имя*} приложения, которое было предварительно загружено. Функция возвращается 0, если разгруженные сбои, или 1, если это преуспевает.
Пусто *acrxLoadedApps ()
Эта функция возвращает массив строк как пустой *, содержа логическое прикладное название{*имя*} каждого приложения, которое в настоящее время загружено. Функциональные возвращения ПУСТОЙ УКАЗАТЕЛЬ, если никакие приложения не загружены. Это - ответственность вызывающей программы выпустить пространство{*пробел*}, распределенное для возвращенных строк.
ARX Команда
Следующие разделы описывают команду ARX и ее опции. Начальная подсказка следующие:
? /Load/Unload/Commands/Options: Введите опцию, или нажмите ENTER
? — Приложения Списка
Перечисляет в настоящее время загруженные приложения ARX.
LOAD
Загружает. arx файл, который Вы определяете в стандартном файловом диалоговом окне. Если FILEDIA установлен в 0, диалоговое окно не отображено, и Вы вводите название{*имя*} файла, чтобы загрузиться в ответ на следующую подсказку:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |


