1.Как зарегить программно (из кода) элемент ActiveX. А то у меня прога не запускается без него - пишет что не зарегестрирован. 2.И вообще будет ли нарушением авторского права использование в своей прогграмме чужого активаикс, например из Офиса2003. 3. Почему бейсик не работает с БД Access выше 95-го? Как заставить?
Здравствуйте, f01001! Любой ActiveX-компонет содержит в себе две функции - DllRegisterServer (для регистрации) и DllUnregisterServer (для отмены регистрации). Вот их и можно использовать для данной задачи. ' функция регистрации компонента COMCTL32.OCX Private Declare Function RegActiveX Lib "COMCTL32.OCX" Alias DllRegisterServer() As Long ' функция отмены регистрации компонента COMCTL32.OCX (вдруг пригодится) Private Declare Function UnRegActiveX Lib "COMCTL32.OCX" Alias DllUnregisterServer() As Long 'а это уже пишите в процедуре Form_Load Dim regCode As Long regCode = RegActiveX()
В этом примере вместо COMCTL32.OCX подставите имя своего файла *.ocx и его нужно держать в одном каталоге с программой. Собственно, этот способ является самым простым, но содержит один потенциальный недостаток - нужно "железно"
прописывать имя *.ocx. Я почти уверен, что имя у Вас меняться не будет, и
этот способ Вы и будете использовать в будущем. Однако, расскажу о еще одном способе, так сказать, для общего развития. Регистрация с помощью regsvr32.exe. Синтаксис: regsvr32.exe (пробел) имя_ActiveX. Применительно к ВБ, можно использовать следующий код: Dim s As New Scripting.FileSystemObject Dim WinPath WinPath = s.GetSpecialFolder(WindowsFolder) FileCopy App.Path & "\Mswinsck.ocx", WinPath & "\SYSTEM32" Shell WinPath & "\SYSTEM32\regsvr32.exe mswinsck.ocx"
Одно лишь пояснение к первой строчке. Не у всех пользователей Windows установлен в папку по умолчаню, поэтому использовать абсолютные пути нельзя. Чтобы получить путь к каталогу System32, в котором расположен regsvr32.exe, я воспользовался FileSystemObject. Подключение через Проект - Информация - Microsift Scripting Runtime.
Насчет авторских прав - думаю, ничего
страшного не произойдет, если Ваша программа некоммерческая. Что касается Аксеса -
ничем помочь не могу, с БД не работал. Ответ отправлен: 21.10.2004, 15:17 Отправитель: Licvidator
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.