|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.07.2011, 17:18 | #1 |
Форумчанин
Регистрация: 15.06.2007
Сообщений: 182
|
Регистрация COM-библиотеки
Такая ситуация. В своей программе использую дополнительную dll библиотеку (она прописывается в uses). Если она установлена на компьютере пользователя этой программы, все работает. Если ее нет, то программа отказывается запускаться, выскакивает ошибка и программа закрывается.
Программа заработает если самостоятельно добавить эту библиотеку (regsvr32 IntCOM.dll) Подскажите пожалуйста в delphi как-то можно автоматически если ее нет то добавить эту библиотеку перед включением программы? Пробовал в FormCreate добавлять WinExec('regsvr32 /s IntCOM.dll', SW_HIDE); Не помогло. |
24.07.2011, 17:57 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
1/ dspsdfnm aeyrwbb lbyfvbxtcrb
2/ проверять наличие обьектов до создания TApplication т.е. в DPR |
24.07.2011, 18:15 | #3 |
Форумчанин
Регистрация: 15.06.2007
Сообщений: 182
|
Тоесть в .dpr после begin положить
Код:
|
24.07.2011, 18:37 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
для начала, почитайте это http://sprvka.ru/r/regsvr32.htm
Как вариант в dpr: 1. проверяем наличие dll вообще 2. Удаляем регистрацию 3. устанавливаем регистрацию. все. А вообще, пишите тестовое прижение, и вооружаемся RegShot, смотрим куда пишется регистрация этой dll. И отукуда она удаляется. Ну а потом напишите проверку наличия этого(их) ключа(ей) в реесте. И в соответствии с выводами вашей функции проверки, сделаете нужное действие. Естественно нужно будет учесть и систему в котрой будет работать ПО. 7 от XP отличается. |
24.07.2011, 19:32 | #5 |
Форумчанин
Регистрация: 15.06.2007
Сообщений: 182
|
Спасибо. С этим разобрался.
Появился еще 1 вопрос. Подскажите как в: Код:
Спасибо. |
24.07.2011, 19:49 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
запускаете regsvr32 через Createprocess с нужными параметрами, получаете hProcess далее при помощи WaitForSinglebject(hProcess,INFINIT E) <> 0 ждёте пака завершиься процесс.
|
24.07.2011, 20:54 | #7 |
Форумчанин
Регистрация: 15.06.2007
Сообщений: 182
|
Звучит очень сложно. Хорошо попробую спасибо.
|
24.07.2011, 20:57 | #8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
ищите "delphi запуск процесса с ожиданием его завершения"
|
25.07.2011, 15:55 | #9 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
А чем плохо это?
LoadLibrary FreeLibrary |
25.07.2011, 16:21 | #10 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
LoadLibrary
DllRegisterServer := GetProcAddress(..., 'DllRegisterServer') CoInitialize DllRegisterServer (либа полезет в ветку HKLM, соответвтенно под вистой/семёркой потребуется requireAdministrator в манифесте)
пыщь
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Зависимость библиотеки от библиотеки | ds.Dante | C# (си шарп) | 2 | 07.07.2011 12:55 |
excel 2007, Регистрация библиотеки от excel 2003 | maksim_serg | Microsoft Office Excel | 1 | 12.01.2011 14:05 |
Регистрация пользователя на Jabber сервере с использованием библиотеки IP*Works(XMPP протокол) | AndreyK | Работа с сетью в Delphi | 0 | 06.10.2010 20:51 |