1. Путём добавления нужной записи в реестр Windows (через reg-файл)

    Создать нужный нам reg-файл очень просто (в данном варианте мы размещаем библиотеку на локальной машине):

1. Создайте новый текстовый файл обычным Блокнотом (в командной строке Windows наберите команду Notepad.exe и нажмите Enter).
2. Откройте редактор реестра (в командной строке Windows наберите команду Regedit.exe и нажмите Enter).


3. Выбираем ту версию AutoCAD, в которую хотим автоматически подгружать нашу библиотеку, и идём далее по иерархии...


4. Копируем имя раздела


5. Переходим к нашему текстовому файлу и добавляем в него текст:

Внимание!

    В приведённом ниже коде, вместо HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.2\ACAD-7001:409\Applications\ вам нужно вставить то, что вы ранее скопировали из реестра.

Для английской версии AutoCAD 2009

[HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.2\ACAD-7001:409\Applications\Net]
"LOADER"="C:\\AcadPlagins\\MyNetLib.dll"
"LOADCTRLS"=dword:00000002
"MANAGED"=dword:00000001

    Давайте разберёмся с содержимым нашего reg-файла более подробно...

"[HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.2\ACAD-7001:409\Applications\Net]" - так мы добавляем в реестр новую группу - "Net", в которой будут размещаться наши записи. Вместо "Net" вы можете указать любое другое имя.

"LOADER"="C:\\AcadPlagins\\MyNetLib.dll" - Данный параметр указывает полный путь к файлу нашей библиотеки (если вы сохраняете библиотеку в др. каталоге и под др. именем - измените эту строчку кода, указав ваш путь и наименование библиотеки).

"LOADCTRLS"=dword:00000002 - данный параметр указывает, что dll-файл необходимо загружать при открытии приложения. Значение "2" указывает на необходимость этой операции.

"MANAGED"=dword:00000001 - данный параметр указывает, что dll-файл является управляемым кодом.

6. Сохраните созданный вами текстовый файл под произвольным именем, задав файлу расширение reg (например NetLib.reg).

7. Запустите файл двойным щелчком мыши по нему из окна проводника. На запрос о подтверждении внесения изменений в реестр ответьте утвердительно.

P.S. 

    К сожалению AutoCAD не способен распознать системные переменные операционной системы. Т.е. параметру Loader можно задать такое значение: C:\\Documents and Settings\\All Users\\Application Data\\GpsmCAD\\Synchronizer\\Synchronizer.dll, но если указать этот же файл используя системную переменную: %AllUsersProfile%\\Application Data\\GpsmCAD\\Synchronizer\\Synchronizer.dll, то AutoCAD не выполнит загрузку такой библиотеки. На мой взгляд это существенный недостаток, т.к. при работе с профилем пользователя гораздо удобнее в reg-файле использовать %AppData% - чем прописывать пути вроде C:\\Documents and Settings\\Developer\\Application Data в которых присутствуют логины пользователей (у каждого свой).

Comments