Страница: 1 |
Люди подскажите как это делаеться и каким софтом. Буду очень благодарен.
из командного окна: regsvr32 [полный путь и имя файла библиотеки или контрола] перед путем и именем возможны ключи /s - выполнять тихо, без сообщений /u - разрегистрировать (не по-русски как-то правда Цитирую статью, где откопал, не помню, так что сори, копирайта не будет. Начало цитаты. Программная регистрация ActiveX DLL и OCX Обычно регистрация (или ее отмена) ActiveX-компонентов выполняется с помощью автономной утилиты regsvr32.exe. Если необходимо выполнять процедуры регистрации в момент выполнения вашего VB-приложения, то можно воспользоваться обращением к этой утилите с помощью Shell. Однако существует еще один способ проведения таких операций, недостатком которого является необходимость "железного" включения имени нужного компонента в код программы. Дело в том, что каждый ActiveX-компонент (ActiveX DLL или OCX) имеет функции DllRegisterServer и DllUnregisterServer, выполняющие операции регистрации/отмены регистрации над собственным компонентом. И обратиться к ним можно напрямую, как к обычной DLL-функции. Например, если вы хотите программно проводить операции регистрации компонента COMCTL32.OCX, то в программе нужно описать две такие функции: Однако следует иметь в виду, что если вы не указали полный путь к файлу, то его поиск будет осуществляться только в системном или текущем каталоге. Кроме того, при выполнении операций целесообразно реализовать механизм анализа возможных ошибок. Приведем пример кода регистрации библиотеки Test.DLL, которая хранится в произвольном каталоге C:\MyApp: Что то не получилось форматирование, поэтому продублирую. Обычно регистрация (или ее отмена) ActiveX-компонентов выполняется с помощью автономной утилиты regsvr32.exe. Дело в том, что каждый ActiveX-компонент (ActiveX DLL или OCX) имеет функции DllRegisterServer и DllUnregisterServer, Например, если вы хотите программно проводить операции регистрации компонента COMCTL32.OCX, то в программе нужно описать две такие функции: Однако следует иметь в виду, что если вы не указали полный путь к файлу, то его поиск будет осуществляться только в системном или текущем каталоге. Кроме того, при выполнении операций целесообразно реализовать механизм анализа возможных ошибок. Приведем пример кода регистрации библиотеки Test.DLL, которая хранится в произвольном каталоге C:\MyApp: Забавная возможность. Надо будет поюзать Хотя метод с regsvr32 меня еще не разу не подводил Подводить то он может и не подводит, но и ошибки при регистрации тоже получить невозможно. Такие как отказ регистрации, при запуске пользователем с огрониченными правами. Желаю удачи. Irbis Попробовал, в принципе работает с поправкой синтаксиса: Declare Function RegTestDLL Lib "Test.DLL" Alias _ "DllRegisterServer" () As Long Хотя надо сказать, что regsvr32 работал у меня и у пользователей с ограниченными правами. Страница: 1 |
Вопрос: Как зарегистрировать библиотеку?
Добавлено: 24.03.03 11:46
Автор вопроса: fotowolf | Web-сайт:
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
hedgehog
ICQ: 175571327
Вопросов: 15
Ответов: 207
Web-сайт:
Профиль | | #1
Добавлено: 24.03.03 12:35
Номер ответа: 2
Автор ответа:
Irbis
Вопросов: 5
Ответов: 47
Web-сайт:
Профиль | | #2
Добавлено: 24.03.03 22:47
' функция регистрации компонента COMCTL32.OCXDeclare Function RegComCtl32 Lib "COMCTL32.OCX" Alias _ DllRegisterServer() As Long' функция отмены регистрации компонента COMCTL32.OCXDeclare Function UnRegComCtl32 Lib "COMCTL32.OCX" Alias _ DllUnregisterServer() As Long
Declare Function RegTestDLL Lib "Test.DLL" Alias _ DllRegisterServer() As Long Const ERROR_SUCCESS = 0&im retCode As LongOn Error Resume Next ' включаем программную обработку ошибокChDrive "C:" ' Устанавливаем нужныйChDir "C:\MyApp" ' каталог текущимregCode = RegTestDLL() ' регистрация Test.DLL' анализ возможных ошибокIf Err <> 0 Then MsgBox "Файл Test.DLL не найден"Else If regCode <> ERROR_SUCCES Then MsgBox "Операция регистрации не выполнена" End If End If
Конец цитаты.
Желаю успеха, Irbis
Если вам глядя на компьютер, все чаще, хочется взять молоток ...
,пора подумать о визите к психиатору илм модернизации.
Номер ответа: 3
Автор ответа:
Irbis
Вопросов: 5
Ответов: 47
Web-сайт:
Профиль | | #3
Добавлено: 24.03.03 23:01
Если необходимо выполнять процедуры регистрации в момент выполнения вашего VB-приложения, то можно воспользоваться
обращением к этой утилите с помощью Shell. Однако существует еще один способ проведения таких операций,
недостатком которого является необходимость "железного" включения имени нужного компонента в код программы.
выполняющие операции регистрации/отмены регистрации над собственным компонентом. И обратиться к ним можно напрямую, как к обычной DLL-функции.
' функция регистрации компонента COMCTL32.OCX
Declare Function RegComCtl32 Lib "COMCTL32.OCX" Alias _
DllRegisterServer() As Long
' функция отмены регистрации компонента COMCTL32.OCX
Declare Function UnRegComCtl32 Lib "COMCTL32.OCX" Alias _
DllUnregisterServer() As Long
Declare Function RegTestDLL Lib "Test.DLL" Alias _
DllRegisterServer() As Long
Const ERROR_SUCCESS = 0&
Dim retCode As Long
On Error Resume Next ' включаем программную обработку ошибок
ChDrive "C:" ' Устанавливаем нужный
ChDir "C:\MyApp" ' каталог текущим
regCode = RegTestDLL() ' регистрация Test.DLL
' анализ возможных ошибок
If Err <> 0 Then
MsgBox "Файл Test.DLL не найден"
Else
If regCode <> ERROR_SUCCES Then
MsgBox "Операция регистрации не выполнена"
End If
End If
Номер ответа: 4
Автор ответа:
hedgehog
ICQ: 175571327
Вопросов: 15
Ответов: 207
Web-сайт:
Профиль | | #4
Добавлено: 25.03.03 11:52
Номер ответа: 5
Автор ответа:
Irbis
Вопросов: 5
Ответов: 47
Web-сайт:
Профиль | | #5
Добавлено: 25.03.03 13:48
Номер ответа: 6
Автор ответа:
hedgehog
ICQ: 175571327
Вопросов: 15
Ответов: 207
Web-сайт:
Профиль | | #6
Добавлено: 25.03.03 18:00
Номер ответа: 7
Автор ответа:
Nikita
ICQ: 424638122
Вопросов: 0
Ответов: 1
Профиль | | #7
Добавлено: 14.06.10 19:42
Помогите плз! Когда захожу в regsvr32 пишет "Модуль dirtysock.dll агружен, но точка входа DLLRegisterServer не найдена"
Номер ответа: 8
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #8
Добавлено: 15.06.10 13:29
надо запустить из-под безопасного режима через Выполнить. Это ошибка прав доступа.
Номер ответа: 9
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #9
Добавлено: 15.06.10 13:30
Или сделай свою прогу как написано
Номер ответа: 10
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #10
Добавлено: 15.06.10 13:30
У меня (да и у всех наверное) это было. какая ось кстати?
Номер ответа: 11
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #11
Добавлено: 15.06.10 16:20
Если entry для DllRegisterServer не найдена - библиотека не ActiveX.
И юзайте тег SOURCE для кода:
[SOURCE]
Declare Function RegTestDLL Lib "Test.DLL" Alias _ DllRegisterServer() As Long
[/SOURCE
Номер ответа: 12
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #12
Добавлено: 15.06.10 16:21
Чтоб выглядело так