[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Наш сайт » Visual basic » Регистрация компонентов VB (Регистрация компонентов VB)
Регистрация компонентов VB
ilimДата: Пятница, 04.02.2011, 05:10 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 680
Награды: 17
Репутация: 4
Статус: Offline
Почти каждый программист делая программку использует какой - нибудь компонент(взять тот же Common Dialog), и очень часто при переносе программы на вражеский комп программа не работает, из - за того что на вр. компе нету компонента, или он не зарегистрирован в системе.
Вот основные способы регистрации:

1. Надо скачать программу VB-PowerWrap или Fusion, и с помощью нее скомпилировать vb программу и ocx`ки и dll`ки в один *.exe файл. Т.е. эти программы нужны для того, чтобы запихнуть все библиотеки и компоненты в один exe файл.

2. Положить все нужные компоненты и библиотеки в папку с программой, из которой они будут запускаться. И тогда при запуске программы, они автоматически зарегистрируются. Этот способ проверялся на VB6(на VB5 может и не работать)

3. Можно воспользоваться программой regsvr32.exe, она вроде поставляется со всеми версиями windows(начиная с 98). Эта программа нужна для регистрации компонентов. Сейчас напишем программу, которая будет регистрировать/дерегистрировать компонент. На форму кинь 2 кнопки(у 1ой, Caption = "Регистрировать", у 2ой - "Де - регистрировать"). Код:

Private Sub Command1_Click()
Shell "cmd /X /C start regsvr32.exe 1.ocx /s", vbHide' Регистрируем компонент 1.ocx, который находится в тойже папке где и сама программа. Параметр /s нужен для тихой регистрации, т.е. если его не указать, то при регистрации компонента будет появлятся сообщение, о том что компонент зарегистрирован.
End Sub

Private Sub Command2_Click()
Shell "cmd /X /C start regsvr32.exe /u 1.ocx", vbHide' Де - Регистрируем
End Sub

Исходник(в исходнике 2 проекта, первый - регистрирует/де - регистрирует компонент, а второй находится в папке "Тест", и использует зарегистрированный компонент(если компонент не зарегистрирован, то проект(2) не откроется))

Программа regsv32 может запускаться с разными параметрами:
/u - Отмена регистрации
/s - "Тихий" режим; окна сообщения не отображаются
/i - Вызывает DllInstal, передовая параметром необязательную строку команд, при использовании с ключом /u DllInstall
/n - Не вызывает DllInstallServer; это может использоваться с ключом /i

При создании более - менее крупных программ следует помнить, что VB работает на подпорках(это библиотеки msvbvm60.dll - если программа написанна на VB6, и msvbvm50.dll - если программа написанна на VB5). А эти подпорки есть не на всех компах, т.е. их следует тоскать со своей программой, и регистрировать. Наверное лучше всего для этого подайдет способ 2, но возможно(я на VB5 не проверял), этот способ на VB5 работать не будет, и поэтому можно сделать при помощи *.bat файлов. Открой блокнот, и впиши туда:

regsvr32.exe COMDLG32.ocx /s
regsvr32.exe msvbvm60.dll /s
autorun.exe

Первая строчка регистрирует компонент(Common Dialog), вторая библиотеку msvbvm60.dll, третья запускает файл autorun.exe. Теперь сохрани это файл как(Файл>>Сохранить как) имя_файла.bat. И положи в ту директорию где этот файл библиотеки и компоненты который он регистрирует(в нашем случае COMDLG32.ocx, msvbvm60.dll). И туда же файл autorun.exe.

Если ты всё сделал правильно, то при запуске этого файла, у тебя должны зарегистрироваться компоненты и библиотеки, и потом запуститься файл autorun.exe.


www.ilim.kz
 
Форум » Наш сайт » Visual basic » Регистрация компонентов VB (Регистрация компонентов VB)
Страница 1 из 11
Поиск: