Как правильно регистрировать OCX и т.п. инсталлятором?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
MagicMan
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 18.11.2004 (Чт) 11:03

Как правильно регистрировать OCX и т.п. инсталлятором?

Сообщение MagicMan » 09.03.2005 (Ср) 18:25

Народ подскажите - как правильно делать?

Есть прога и компоненты к ней (comdlg32.ocx, tabctl32.ocx) и т.п.
Как правильно с ними поступать инсталлятору? Копировать их в системную директорию или в директорию с самой программой? И ещё есть 2 возможности - регестрировать их и ещё "Shared". Как правильно делать?

Раньше я их копировал в SystemDir и регил и шарил их там - но были конфликты. Потом я стал копировать файлы в директорию с прогой беез регистрации и опции "Shared" - но вот стали появляться моменты когда например в виндусе XP говорит что библиотек таких нет - если скопировать их в системную директорию и зарегить RegSvr32 - то всё ок.

Так как быть? Если копировать в системную директорию - то что выбирать "Всегда перезаписывать", "Не перезаписывать" и т.п.????

Как надо правилно поступать чтобы не было конфликтов и проблем?

Жду совета,
Юрий.

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 10.03.2005 (Чт) 1:31

Присоединяюсь. Извиняйте за беспокойство уважаемые. У меня немного схожий вопрос.
Стал делать инсталляшки "CreateInstall", и не нашел ничего лучше, как копировать им все библиотеки в систем32, а затем этим же инсталлятором запутить батовский файл, где прописываю все эти библиотеки. При инсталляции приходится нажимать подтверждение на то, что каждая длл из
Код: Выделить всё
REGSVR32 %systemroot%\system32\msador15.dll
REGSVR32 %systemroot%\system32\MSBIND.DLL
REGSVR32 %systemroot%\system32\MSCONDES.DLL
REGSVR32 %systemroot%\system32\MSDBRPT.DLL
REGSVR32 %systemroot%\system32\MSDE.DLL
REGSVR32 %systemroot%\system32\MSDERUN.DLL
REGSVR32 %systemroot%\system32\MSHTMPGD.DLL
REGSVR32 %systemroot%\system32\MSSTDFMT.DLL
REGSVR32 %systemroot%\system32\msvbvm60.dll
REGSVR32 %systemroot%\system32\scrrun.dll
REGSVR32 %systemroot%\system32\Comct232.ocx
REGSVR32 %systemroot%\system32\Comdlg32.ocx
REGSVR32 %systemroot%\system32\MSADODC.OCX
REGSVR32 %systemroot%\system32\MSCOMCT2.OCX
REGSVR32 %systemroot%\system32\MSCOMCTL.OCX
REGSVR32 %systemroot%\system32\MSDATGRD.OCX
REGSVR32 %systemroot%\system32\OvalButton.ocx
REGSVR32 %systemroot%\system32\TTF16.ocx
REGSVR32 %systemroot%\system32\VCF132.OCX
...
...
...
REGSVR32 %systemroot%\system32\WBCLSDSR.OCX

успешно прописана.
Подскажите плиз споособ, как прописать все длл, чтобы не жать постоянно на "OK" при регистрации.
И как зарегистрировать прогу на машине клиента, у которого прав админа нет?
Извините за деспокойство. Буду рад любой информации...
С уважением, Сергей.

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 10.03.2005 (Чт) 1:55

http://bbs.vbstreets.ru/viewtopic.php?p=101967#101967
Список инсталляторов, если кому интересно.
С уважением, Сергей.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 10.03.2005 (Чт) 2:35

Не нужен вообще *.Bat !!!
Всё есть в CreateInstall. см. фрейм "FileOptions" справа от списка файлов вкладки Files

Вкладка Windows содержит информацию о том, куда девать компонеты и пр.
Вкладка Misc уточняет некоторые тонкие моменты во время инсталляции и деинсталляции.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.03.2005 (Чт) 2:36

Чтобы regsvr32 не возникал, есть ключ /s
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Как правильно регистрировать OCX и т.п. инсталлятором?

Сообщение Andrey Fedorov » 10.03.2005 (Чт) 8:26

MagicMan писал(а):Как правильно с ними поступать инсталлятору? Копировать их в системную директорию или в директорию с самой программой?


В системную.

MagicMan писал(а):И ещё есть 2 возможности - регестрировать их и ещё "Shared". Как правильно делать?


Shared, как правило, ведь эти DLL-ки могут пользоваться и другими программами.

MagicMan писал(а):Раньше я их копировал в SystemDir и регил и шарил их там - но были конфликты.


Они могут возникать из-за того что там уже есть такой-же файл и он занят другой программой - инсталятор не может его заменить. Ну или у пользователя просто нет прав на установку программ.

Нормальный инсталятор должен это определить и выдать соответствующее сообщение.

MagicMan писал(а):Так как быть? Если копировать в системную директорию - то что выбирать "Всегда перезаписывать", "Не перезаписывать" и т.п.????


Перезаписывать если версия выше чем имеющаяся.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 11.03.2005 (Пт) 0:33

Доброго времени суток всем.

Вот ведь, какая вещь.

GSerg писал(а):Чтобы regsvr32 не возникал, есть ключ /s

С ключиком “/s” батовский файл, запущенный вручную, перестал выдавать сообщение о подключении очередной библиотеки.
Но, если батовский файл запускать самим CreateInstall - ром, то все те же сообщения появляются при инсталляции программы. ==> Желаемого эффета таким способом не достиг и все вернулось на круги своя... Но все равно спасибо. Может есть аналогичный способ?

Alexanbar писал(а):Не нужен вообще *.Bat !!!
Всё есть в CreateInstall. см. фрейм "FileOptions" справа от списка файлов вкладки Files

У меня нет вкладки Files, есть вкладка Ini Files. Фрейма "FileOptions" - тоже нет. Может не там ищу??? А может версия другая. Но все равно, существенных отличий быть не должно (в различных версиях), значит я что-то делаю не так. У меня CreateInstall версии 3.41. Помоги разобраться.
Во вложенном файле - картинка с внешним видом CreateInstall и файл "crinst.usr" с моими настройками (C:\Program Files\CreateInstall\ crinst.usr). Если его скопируешь к себе в папку с CreateInstall, то появится мой проект (точнее - настройки). Только свой файл сохранить не забудь. Если не в лом - покажи на примере с этим файлом, как зарегистрировать библиотеки и выложи свой файл "crinst.usr". Не понимаю, что делаю не так.
Буду благодарен всем за любую информацию.
Вложения
CreateInstall.rar
(41.47 Кб) Скачиваний: 94
С уважением, Сергей.

Qubicz
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 16.10.2004 (Сб) 20:21
Откуда: Санкт-Петербург

Сообщение Qubicz » 11.03.2005 (Пт) 4:27

С ключиком “/s” батовский файл, запущенный вручную, перестал выдавать сообщение о подключении очередной библиотеки.

не мудрено а ты запусти просто regsvr32
а то сколько раз окей нажать надо
Код: Выделить всё
REGSVR32 %systemroot%\system32\msador15.dll
REGSVR32 %systemroot%\system32\MSBIND.DLL
REGSVR32 %systemroot%\system32\MSCONDES.DLL
REGSVR32 %systemroot%\system32\MSDBRPT.DLL
REGSVR32 %systemroot%\system32\MSDE.DLL
REGSVR32 %systemroot%\system32\MSDERUN.DLL
REGSVR32 %systemroot%\system32\MSHTMPGD.DLL
REGSVR32 %systemroot%\system32\MSSTDFMT.DLL
REGSVR32 %systemroot%\system32\msvbvm60.dll
REGSVR32 %systemroot%\system32\scrrun.dll
REGSVR32 %systemroot%\system32\Comct232.ocx
REGSVR32 %systemroot%\system32\Comdlg32.ocx
REGSVR32 %systemroot%\system32\MSADODC.OCX
REGSVR32 %systemroot%\system32\MSCOMCT2.OCX
REGSVR32 %systemroot%\system32\MSCOMCTL.OCX
REGSVR32 %systemroot%\system32\MSDATGRD.OCX
REGSVR32 %systemroot%\system32\OvalButton.ocx
REGSVR32 %systemroot%\system32\TTF16.ocx
REGSVR32 %systemroot%\system32\VCF132.OCX

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 11.03.2005 (Пт) 21:29

Qubicz писал(а): не мудрено а ты запусти просто regsvr32
а то сколько раз окей нажать надо


Хочу узнать, что ты имел в виду?

Qubicz писал(а):
Код:
REGSVR32 %systemroot%\system32\msador15.dll
REGSVR32 %systemroot%\system32\MSBIND.DLL
REGSVR32 %systemroot%\system32\MSCONDES.DLL


С самого начала я делал именно так.
Теперь:
Код: Выделить всё
@ echo off

REGSVR32 %systemroot%\system32\msador15.dll /s
REGSVR32 %systemroot%\system32\MSBIND.DLL /s
REGSVR32 %systemroot%\system32\MSCONDES.DLL /s
REGSVR32 %systemroot%\system32\msdart32.dll /s
REGSVR32 %systemroot%\system32\MSDBRPT.DLL /s
REGSVR32 %systemroot%\system32\MSDE.DLL /s
REGSVR32 %systemroot%\system32\MSDERUN.DLL /s
REGSVR32 %systemroot%\system32\MSHTMPGD.DLL /s
REGSVR32 %systemroot%\system32\MSSTDFMT.DLL /s
REGSVR32 %systemroot%\system32\msvbvm60.dll /s
REGSVR32 %systemroot%\system32\scrrun.dll /s
REGSVR32 %systemroot%\system32\Comct232.ocx /s
REGSVR32 %systemroot%\system32\Comdlg32.ocx /s
REGSVR32 %systemroot%\system32\MSADODC.OCX /s
REGSVR32 %systemroot%\system32\MSCOMCT2.OCX /s
REGSVR32 %systemroot%\system32\MSCOMCTL.OCX /s
REGSVR32 %systemroot%\system32\MSDATGRD.OCX /s
REGSVR32 %systemroot%\system32\OvalButton.ocx /s
REGSVR32 %systemroot%\system32\TTF16.ocx /s
REGSVR32 %systemroot%\system32\VCF132.OCX /s
...
...
...
REGSVR32 %systemroot%\system32\WBCLSDSR.OCX /s


"CreateInstall" сначала втупую копирует все библиотеки в систем 32, копирует саму программу в указанное место юзером, создает ярлыки и настраивает деинсталляцию, затем копирует в каталог с программой батовский файл (см. пример) и запускает его на выполнение. После прописывания всех библиотек и компонентов - удаляет батовский файл. Почему при этом возникают сообщения?
Не будет же юзер запускать сначала инсталляшку, затем батовский файл отдельно... Ему нужно все проще.
Не знаю, что не так...
Ведь существует правильный вариант, и не один. Просто я его не знаю.
С уважением, Сергей.

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 11.03.2005 (Пт) 21:49

http://bbs.vbstreets.ru/viewtopic.php?p=102598#102598
Если кого заинтересовал "CreateInstall"
С уважением, Сергей.

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 11.03.2005 (Пт) 22:15

Хоть чуть чуть, но надо команды доса знать :x

@echo off - отключает все сообщения
ключи, в данном случае "/s" прописывают перед файлом

Итак получаем следующий код Bat'ника:
Код: Выделить всё
@echo off

REGSVR32 /s %systemroot%\system32\msador15.dll
REGSVR32 /s %systemroot%\system32\MSBIND.DLL
REGSVR32 /s %systemroot%\system32\MSCONDES.DLL
REGSVR32 /s %systemroot%\system32\MSDBRPT.DLL
REGSVR32 /s %systemroot%\system32\MSDE.DLL
REGSVR32 /s %systemroot%\system32\MSDERUN.DLL
REGSVR32 /s %systemroot%\system32\MSHTMPGD.DLL
REGSVR32 /s %systemroot%\system32\MSSTDFMT.DLL
REGSVR32 /s %systemroot%\system32\msvbvm60.dll
REGSVR32 /s %systemroot%\system32\scrrun.dll
REGSVR32 /s %systemroot%\system32\Comct232.ocx
REGSVR32 /s %systemroot%\system32\Comdlg32.ocx
REGSVR32 /s %systemroot%\system32\MSADODC.OCX
REGSVR32 /s %systemroot%\system32\MSCOMCT2.OCX
REGSVR32 /s %systemroot%\system32\MSCOMCTL.OCX
REGSVR32 /s %systemroot%\system32\MSDATGRD.OCX
REGSVR32 /s %systemroot%\system32\OvalButton.ocx
REGSVR32 /s %systemroot%\system32\TTF16.ocx
REGSVR32 /s %systemroot%\system32\VCF132.OCX


Теперь попробуй. Ну как :?: Да и еще меня смущает, почему ты используешь REGSVR32 а не REGSVR32.exe ? Прописывать надо полное имя с расширением. Дос это тебе не Windows. Если у тебя установлено расширение ДОС (в XP за тебя побеспокоились), а у кого-то его может и нет, например на системах Win98/95/Me

И еще: зачем вы все за CreateInstall взялись? Инсаллятор от Nulsoft - NSIS гораздо функциональнее и ктому же у него самый мощный алгоритм сжатия. Не знаю как вы, а я его юзаю - "здравая" программа!

---------------
Блин запарил этот интернет пришлось переписывать постинг, зараза отключился - Ссори немного запозднился.
No comments ...

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 11.03.2005 (Пт) 22:24

Вот вспомнил, регистрировать DLL-ки можна еще вот так:
rundll32 SYSINFO.OCX,DllRegisterServer
[/syntax][/syntax]
الفيجوال بيسك الرابح

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 11.03.2005 (Пт) 23:29

Спасибо GM :D

VERITAS писал(а):Хоть чуть чуть, но надо команды доса знать :x
@echo off - отключает все сообщения
ключи, в данном случае "/s" прописывают перед файлом

"@echo off " можно написать "@ echo off". Функциональность - не меняется. Его назначение я и сам знаю.
А ключ, побоку, в каком месте ставить. Не веришь - проверь.
Код: Выделить всё
@echo off

REGSVR32.exe %systemroot%\system32\msador15.dll /s
REGSVR32.exe %systemroot%\system32\MSBIND.DLL /s
REGSVR32.exe %systemroot%\system32\MSCONDES.DLL /s
REGSVR32.exe %systemroot%\system32\msdart32.dll /s
REGSVR32.exe %systemroot%\system32\MSDBRPT.DLL /s
REGSVR32.exe %systemroot%\system32\MSDE.DLL /s
REGSVR32.exe %systemroot%\system32\MSDERUN.DLL /s
REGSVR32.exe %systemroot%\system32\MSHTMPGD.DLL /s
REGSVR32.exe %systemroot%\system32\MSSTDFMT.DLL /s
REGSVR32.exe %systemroot%\system32\msvbvm60.dll /s
REGSVR32.exe %systemroot%\system32\scrrun.dll /s
REGSVR32.exe %systemroot%\system32\Comct232.ocx /s
REGSVR32.exe %systemroot%\system32\Comdlg32.ocx /s
REGSVR32.exe %systemroot%\system32\MSADODC.OCX /s
REGSVR32.exe %systemroot%\system32\MSCOMCT2.OCX /s
REGSVR32.exe %systemroot%\system32\MSCOMCTL.OCX /s
REGSVR32.exe %systemroot%\system32\MSDATGRD.OCX /s
REGSVR32.exe %systemroot%\system32\OvalButton.ocx /s
REGSVR32.exe %systemroot%\system32\TTF16.ocx /s
REGSVR32.exe %systemroot%\system32\VCF132.OCX /s
REGSVR32.exe %systemroot%\system32\WBCLSDSR.OCX /s


REGSVR32.exe, в данной ситуации писать не обязательно, см. дирректорию "%systemroot%\system32".
В Win98/95/Me для библиотек предназначена "%systemroot%\system".
Надо винду изучать, а не только дос. :x

И еще, команда "REGSVR32.exe %systemroot%\system32\OvalButton.ocx /s" на NT4.0 и МЕ прекрасно работает, проверял. Расширение "exe" все винды понимают.

Алгоритм сжатия и в "CreateInstall" нормально работает.

А вообще, всем спасибо за помощь, отзывчивость.
"Nulsoft" нарою в инете - посмотрю, как время будет.

А ошибка моя, уважаемые, состояла в том, что я батовский файл исправил в одной дирректории, а "CreateInstall" подсовывал из другой. Поэтому, когда запускал батник вручную, все работало нормально. А когда инсталлятором - начинались тараканы. Все моя невнимательность, будь она неладна.

Всем еще раз спасибо за помощь. :D

Хочу догнать второй способ регистрации библиотек "CreateInstall".

Alexanbar писал(а):Не нужен вообще *.Bat !!!
Всё есть в CreateInstall. см. фрейм "FileOptions" справа от списка файлов вкладки Files

Поясни плиз. См предыдущее сообщение.
С уважением, Сергей.

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 11.03.2005 (Пт) 23:54

2sergey-911: Можеш на этом проколотся, так как %systemroot% - есть только в НТ, возможно в МЕ, незнаю не видел, в 98 можеш юзать %windir%. System32 там также присутствует в 9х системах, только системная папка все же System.
Вот пример определения ОС:
Код: Выделить всё
@echo off
if "%OS%" == "Windows_NT" goto OSNT
regsvr32.exe %windir%\system\bsrendv.dll
goto end
:OSNT
regsvr32.exe %windir%\system32\bsrendv.dll
:end

Пути к системным папкам, можут быть разные, я навел лиш то что стоит по умолчанию.
Еxe понимают, но сначала система проверяет наличие соm файлов, далее уже идут ехе, так что лучше напиши.

Кстати вот, попробуй регистрировать вот так:
REGSVR32.exe /s msador15.dll
Вроде бы работает :roll:
الفيجوال بيسك الرابح

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 12.03.2005 (Сб) 12:13

Если тебе интересно, как без Bat'ника зарегистрировать DLL, OCX то, сразу скажу, что это гораздо сложнее, больше времени уходит. Если интересно то смотри следующее:
Один из способов - вручную зарегистрировать в реестре DLL или OCX. Я возьму пример регистрации UnrarOCX.ocx Просканив реестр, получаем что все зарегистрированные OCX/DLL прописываются сюда:
Код: Выделить всё
HKEY_CLASSES_ROOT\CLSID
HKEY_CLASSES_ROOT\TypeLib
и
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib

Их регистрация происходит путем создания папки с определенным ID которое одинаковое во всех ключах. Для UnrarOCX.ocx ID номер это: {2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B} Получается следующее:
Для HKEY_CLASSES_ROOT:
Код: Выделить всё
HKEY_CLASSES_ROOT\CLSID\{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B}
HKEY_CLASSES_ROOT\CLSID\{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B}\InprocServer32
@="C:\\WINDOWS\\system32\\UnRarOCX.ocx"
"ThreadingModel"="Apartment"

HKEY_CLASSES_ROOT\SOFTWARE\Classes\TypeLib\{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B}
HKEY_CLASSES_ROOT\SOFTWARE\Classes\TypeLib\{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B}\"Версия OCX"
HKEY_CLASSES_ROOT\SOFTWARE\Classes\TypeLib\{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B}\"Версия OCX"\0\win32
@="C:\\WINDOWS\\system32\\UnRarOCX.ocx"

"ThreadingModel"="Apartment" - постоянный параметр. Ну и для HKEY_LOCAL_MACHINE соответственно:
Код: Выделить всё
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B}
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B}\InprocServer32
@="C:\\WINDOWS\\system32\\UnRarOCX.ocx"
"ThreadingModel"="Apartment"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B}
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B}\"Версия OCX"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B}\"Версия OCX"\0\win32
@="C:\\WINDOWS\\system32\\UnRarOCX.ocx"

Вот тебе и без Bat'ника. Ну как? Хочешь регистрируй через свою программу, а хочешь через файл реестра. На этом все. :shock: :shock: :shock:
No comments ...

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 12.03.2005 (Сб) 13:33

Возможно, что мы говорим о разных программах. Я имел ввиду
InstallCreator v2.0 (build 21)

(http://www.clickteam.com)

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 12.03.2005 (Сб) 18:10

Спасибо вам.
GM Я даже и представить не мог, что батник может определить ОС.
Код: Выделить всё
if "%OS%" == "Windows_NT" goto OSNT

Кстати, за NT точно определиться OC: NT4.0, XP, 2000, 2000server, не зависимо от раздла диска (FAT, NTFS), а за остальное: 95, 98. Просто есть файл, который меняет кодовую страницу в реестре. Причем, если запустить файл для win9-х на XP - то система перестает грузиться даже в безопасный режим. Можно ли его, в данном лучае запускать в автоматич. режиме, не опасаясь того, что система будет определена неправильно?
Также вопрос:
Код: Выделить всё
REGSVR32.exe /s msador15.dll

в данном случае, системная дирректория выбирается ОС. Я правильно понял, и ==> этот вариант предпочтительнее?
А есть ли способ определить сразу ОС на принадлежность WIN9-х.

VERITAS
Спасибо. Я много не знал, скажу честно. Буду разбираться с регистрацией компонентов через реестр. Изначально я хотел регистрировать именно посредством реестра. Но нужной информации не нашел и, честно говоря, побоялся эксперементировать. Не охота систему восстанавливать. А для всех dll ID тоже {2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B} (вряд ли)? И как этот ID используется ОС. Ведь, если я правильно понимаю, через батник происходит тоже самое, таже информация записывается в реестр, но как система узнает, что, куда записать и использовать.
Посмотрел реестр, не догоняю...
:D
С уважением, Сергей.

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 12.03.2005 (Сб) 21:33

sergey-911 в случае с bat файлом ты ведь даешь команду на REGSVR32.exe а это своего рода программа-модуль регистрации. Она читает OCX и присваивает ему уникальный ID. Уникальный - значит постоянный, он для каждого компонента свой,. И на всех системах он будет одинаков.

{2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B} - это уникальный ID только UnrarOCX.ocx Для твоего msador15.dll он будет свой. Чтобы определить к какому классу ID относится твой DLL - самый простой способ - это посмотреть в реестре. Сначала регистрируй у себя bat'ником а потом в поиске реестра пропиши "msador15.dll" и он приведет тебя к твоему ID и к TypeLib (смотри мой пост). Узнав ID пользуйся им.
Сам REGSVR32.exe выполняет именно эту функцию - прописывает и удаляет ключи в реестре, большего он не делает! А вот как через VB определить класс ID - это уже другой вопрос.

А насчет вмешательства в реестр - ничего тут страшного нет. Если руки из того места растут, то думаю проблем не возникнет. Шутка! :wink:
No comments ...

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 13.03.2005 (Вс) 7:39

Кстати {2BD7306F-8E26-11D3-BEAB-0080C8FBFF6B} - точнее это GUID, REGSVR32.exe если не ошибаюсь вызывает ф-цию DllRegisterServer, так же как и rundll32 SYSINFO.OCX,DllRegisterServer.
الفيجوال بيسك الرابح

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 13.03.2005 (Вс) 15:12

Без BAT-ника - просто в цикле ставить
Код: Выделить всё
Shell "Regsvr32 /s ...", vbHide
или как-то так
Последний раз редактировалось Alexander N. Samarin 14.03.2005 (Пн) 12:54, всего редактировалось 1 раз.

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 14.03.2005 (Пн) 0:20

Всем спасибо, крайне признателен. Очень доходчиво разъяснили. :wink:
С уважением, Сергей.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 62

    TopList