PDA

Показать полную графическую версию : DrWeb 4.3x - автоустановка


Страниц : 1 2 3 [4] 5 6 7

ZaV
02-03-2006, 13:34
ну так вот
в моем скрипте для innosetup есть такие строки (фрагмент)
Root: HKLM; SubKey: SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\Protocol_Catalog9; ValueType: dword; ValueName: Next_Catalog_Entry_ID; ValueData: $000003F6
Root: HKLM; SubKey: SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\Protocol_Catalog9; ValueType: dword; ValueName: Num_Catalog_Entries; ValueData: $0000000D
Root: HKLM; SubKey: SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\Protocol_Catalog9; ValueType: dword; ValueName: Serial_Access_Num; ValueData: $00000009
Root: HKLM; SubKey: SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\Protocol_Catalog9\Catalog_Entries\000000000001 ; ValueType: binary; ValueName: PackedCatalogItem; ValueData: 25 53 79 73 74 65 ......
Root: HKLM; SubKey: SYSTEM\CurrentCo...........
Root: HKLM; SubKey: SYSTEM\CurrentCo............ и тд

так это выглядит в реестре (фрагмент)

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\WinSock2\Parameters\Protocol_Catalog9]
"Next_Catalog_Entry_ID"=dword:000003F6
"Num_Catalog_Entries"=dword:0000000D
"Serial_Access_Num"=dword:00000009

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\WinSock2\Parameters\Protocol_Catalog9\Catalog_Entri es\000000000001]
"PackedCatalogItem"=hex(03):25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,73,79,73,\
74,65,6d,33,32,5c,44,52,57,45,42,53,50,2e,44,4c,4c,00,00,00,6d,00,73,00,5f,\
00,70,00,74,00,69,00,6d,00,69,00,6e,00,69,00,70,00,6f,00,72,00,74,00,00,00,\
52,00,4f,00,4f,00,54,00,5c,00,4d,00,53,00,5f,00,50,00,54,00,49,00,4d,00,49,\
00,4e,00,49,00,50,00,4f,00,52,00,54,00,5c,00,30,00,30,00,30,00,30,00,00,00,\
e1,cf,dd,ba,7f,b2,55,4c,a6,57,66,74,de,84,8f,21,00,00,00,00,29,00,00,00,6d,\
00,73,00,5f,00,70,00,70,00,70,00,6f,00,65,00,6d,00,69,00,6e,00,69,00,70,00,\
6f,00,72,00,74,00,00,00,52,00,4f,00,4f,00,54,00,5c,00,4d,00,53,00,5f,00,50,\
00,50,00,50,00,4f,00,45,00,4d,00,49,00,4e,00,49,00,50,00,4f,00,52,00,54,00,\
5c,00,30,00,30,00,30,00,30,00,00,00,d6,f9,9c,c0,2e,2f,95,45,93,81,76,0e,32,\
9b,04,7d,00,00,00,00,29,00,00,00,6d,00,73,00,5f,00,70,00,66,00,02,00,00,00,\
00,00,00,00,00,00,00,00,00,00,08,00,00,00,29,e0,06,77,28,9a,a9,43,84,6d,1c,\
e7,0c,d3,fe,e5,f2,03,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,00,02,00,00,00,10,\
00,00,00,10,00,00,00,01,00,00,00,06,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,44,00,72,00,77,00,65,00,62,00,53,00,50,00,2e,\
00,4d,00,53,00,41,00,46,00,44,00,20,00,54,00,63,00,70,00,69,00,70,00,20,00,\
5b,00,54,00,43,00,50,00,2f,00,49,00,50,00,5d,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

и еще порядка 25 таких же небольших ключиков ;)

ну и тому подобное короче я так понимаю это связано как раз со spidermail ...
но все дело в том что в реестре и эта ветка и значения которые я записываю уже присутствуют на момент установки ... и при установке drweb перезаписываются ...
требуется при установке сохранить копию этой ветки или только ее части в реестре ... а при анинстале восстановить (хотя может это и некритично просто логично предположить что это все таки необходимо)

boss911
02-03-2006, 17:35
ZaV
но все дело в том что в реестре и эта ветка и значения которые я записываю уже присутствуют на момент установки ... и при установке drweb перезаписываются ... Если я тебя правильно понял, у тебя существуют данные ветки и параметры реестра, и при установке drweb перезаписываются, так вот, что их презаписует, инсталятор который ставит или сама уже прога!? Непойму зачем ты тогда вносиш эти ключи реестра в скрипт, если они у тебя уже существуют в реестре и тебе ненадо их перезаписывать!! Извени конечно, но что-то я не могу вьехать!!
требуется при установке сохранить копию этой ветки или только ее части в реестре ... а при анинстале восстановить Так возьми сохрани нужное в *.reg файл перед установкой и скомпилируй его вместе с дистрибутивом и пропиши в скрипте, чтоб при деинсталяции выполнялась команда regedit /s твой.reg и все вернетса на то, как было до установки вэба!!
(хотя может это и некритично просто логично предположить что это все таки необходимо)Я уверен, что это не критично и уж точно не имеет такой необходимости!!
Еще раз сори, если я нечем тебе не помог, просто не понятно зачем такие сложности!!

ZaV
03-03-2006, 08:30
спасибо кое чем действительно помог навело на мысль ... а насчет того что скрипт пишет уже в существующие ветки реестра ... да он туда и пишет но пишет не те значения что там были до этого ... а если этого не делать то spidermail выдает что он был некорректно установлен... соответственно возникает вопрос сможет ли винда корректно работать после того как спайдер я снесу а ветки оставлю без изменений ... вдруг почта ходить перестанет на тачке ...
в общем буду проверять

boss911
03-03-2006, 19:43
ZaV
возникает вопрос сможет ли винда корректно работать после того как спайдер я снесу а ветки оставлю без изменений ... вдруг почта ходить перестанет на тачкеЯ просто уверен, что оригинальный дистр. вэба не делает ни каких бэкапов ключей реестра и темболее нечего не возращает назад при деинсталяции, а лучше, для своего любопытсва, возьми и проверь и ты увидиш, что я был прав (ну а может и нет, кто знает)!! Так что, вывод - почта у тебя не перестанет ходить!! :)

Crash-100
04-03-2006, 14:02
Подробно объяснить как автоматически установить DRWEB-433-WIN-RU :)

ZaV
10-03-2006, 09:34
посмотрел насчет веток сначала их вроде 9 потом гораздо больше внимательно не смотрел но похоже там и есть резервная копия после анинстала родным дистрибом все откатывается до исходного состояния так что надо все таки восстанавливать реестр. и вообще я так понял installshield это зло :) щас с adobe premiere мучаюсь такая ж фикня как с вэбом ... не работает setup -s и все тут... ошибка -3 :( ...

Vadikan
05-04-2006, 22:46
All
Тема разрослась. Если в ней есть решение или руководство к действию, то отправьте его отдельным постом - я внесу в шапку.

ZaV
12-04-2006, 15:41
вот скрипт для innosetup подредактированный и дополненный

скрипт (http://rapidshare.de/files/17808670/drweb_new.zip.html) P.S. новую ссылку смотреть в следующих постах

все что за сегодня успел ... толком еще не проверил ... в том числе не работает удаление веток реестра
Legacy_.... (там их 3 штуки) потому что прав не хватает (надо хелп почитать будет)
и насчет регистрации dll не уверен толи это registerserver(...) (все подсказки приветствуются)

а так ставится удаляется реестр восстанавливает ...
а ну еще папку infected не мочит и логи тоже

P.S. собранную версию не выкладываю по понятным причинам ...

boss911
12-04-2006, 18:18
ZaV
насчет регистрации dll не уверен толи это registerserver
Каких именно dll непойму вопроса, как я понемаю тебе надо зарегистрировавать dll-ку и ты не знаеш какой флаг применить, может ты имееш ввиду regserver, но честно говоря я этим флагом не пользуьсь при регистрации библиотек!! А еще я бы сделал так (это так к примеру, чтоб ты понял о чем я говорю):
Root: HKLM; SubKey: SOFTWARE\IDAVLab; ValueType: none; Flags: uninsdeletekey dontcreatekey
Root: HKLM; SubKey: SYSTEM\CurrentControlSet\Services\drwebnet; ValueType: none; Flags: uninsdeletekey dontcreatekey
а все остальные клюи и параметры, что входять в данный ключ, оставляй без флага uninsdeletekey, я так всегда пользуюсь, чтоб при деинсталяции в реестре нечего неоставалось от данной проги!!
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: SpIDerMail; ValueData: """{app}\spiderml.exe"""; Flags: uninsdeletekey
В данном случае флаг uninsdeletekey не рекомендую использовать, так как может прибить и другие параметры в автозагрузке, как помнетса я напоролся на такую беду, удалило значение на загрзку ctfmon.exe и языковая панель не загружалась, в таких одиночных случаях используй лучше флаг uninsdeletevalue .
а ну еще папку infected не мочит и логи тоже
Так пропиши в скрипте, что надо удалить при деинсталяции, опять же привожу пример:
[UninstallDelete]
Name: {путь}\папка\*; Type: filesandordirs
И еще маленький вопрос, ты секцию [Code] гдето выдрал или сам написал, честно говоря я такого не умею писать, а прочитать хелп на английском я немогу, незнаю я его!!


Что за... я немогу отредактировать свое сообщени, редактор просто мертв и где делся старый редактор там где можно было выбрать размер и цвет шрифта!??

ZaV
13-04-2006, 09:17
пойдем по пунктам
1) насчет регистрации dll а вообще не уверен надо ли это (может кто прояснит ) н раньше я делал так
в секции RUN писал Filename: {sys}\REGSVR32.EXE; Parameters: {app}\drwsxtn.dll /s
а в Uninstallrun Filename: REGSVR32.EXE; Parameters: {app}\drwsxtn.dll /u /s
интересунт именно вопрос правильно ли я понял что RegisterServer(Is64BitInstallMode, ExpandConstant('{app}\drwsxtn.dll'), False); в первом случае и UnregisterServer(Is64BitInstallMode, ExpandConstant('{app}\drwsxtn.dll'), False); во втором тоже самое.
и еще у меня в реестр импортируется строчка
Root: HKCR; SubKey: CLSID\{{e7593602-124b-47c9-9f73-a69308edc973}\InProcServer32; ValueType: string; ValueName: ; ValueData: {app}\drwsxtn.dll; Flags: uninsdeletekey вот щас подумал а не за это ли самое она отвечает может кто в курсе если нет тогда попозже проверю :)
2)насчет автозагрузки насколько я понял что если я пишу
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: SpIDerMail; ValueData: """{app}\spiderml.exe"""; Flags: uninsdeletekey
то и удаляться должна именно эта ветка... или я не прав?
3)удаление папки добавил
[UninstallDelete]
Name: "{app}"; Type: filesandordirs
infected удаляет а log файл остается я так понимаю потому что у меня удаление спайдера настроено после перезагрузки возможно нада вернуться к версии с убийством процесса тогда наверное все отработает или в реестр runonceex прописать удаление папки
4) секция code ... в InnoSetupScripting_v3_final.doc нашел пример функции RegQueryStringValue потом хелп
дальше писал сам

а с правами на секцию Root: HKLM; SubKey: SYSTEM\CurrentControlSet\Enum\Root\LEGACY_SPIDER' и еще 2 наподобие так и не разобрался по большому счету они не мешают а для удаления там нада права system или как то их переопределить

переработанный скрипт (http://rapidshare.de/files/17873817/drweb.zip.html) ...
boss911 P.S. новую ссылку смотреть в следующих постах.... скрипт сильно переработан...

пожалуйста посмотри так ли все сделал ... (да еще временно закоментировал строчки из пункта 1 до выяснения)

boss911
14-04-2006, 03:08
ZaV
то и удаляться должна именно эта ветка... или я не прав?
Да, точнее он попытаетса ее удалить, короче когда ветка реестра общая, как в данном случае, для Win и других приложений, то рекомендуетса использовать флаг uninsdeletevalue (удалить значение (а не ветку)). В твоем скрипте кое где встречаетса данная ситуация, всемательно пересмотри!
[UninstallDelete]
Name: {app}\*; Type: filesandordirs
Удалятса все файлы и подкаталоги!!
вопрос правильно ли я понял что...
Про секцию [Code], тут я не знаю что сказать :unsure: , неселен в этой части, но знаю, что там зарыты неплохие возможности для инсталятора!!

ZaV
14-04-2006, 09:34
вчерашний день показал что все что было в прошлом скрипте (сохранение резервной ветки и куча записей в реестр) по меньшей мере изврат (ну по крайней мере научился с реестром из инсталятора работать) теперь все проще и красивее обнаружились интересные ключи у спайдера и спайдер мэйла (по идее можно вэб поставить даже из sfx архива).
насчет веток hklm\system\currentcontrolset\enum\root\Legacy_spider и Legacy_drwebnet посмотрел после родного анинстала они тоже остаются ... так что так и оставим еще остается папка drweb и в ней spidernt.log пробовал spider ваще прибивать при анинстале, но файл все равно остается...
смотрим новый скрипт (http://rapidshare.de/files/18215824/drweb.zip.html) проверяем дополняем и пишем в эту ветку ...

boss911
14-04-2006, 17:42
ZaV
еще остается папка drweb и в ней spidernt.log
Ты какой-то не внимательный, я же тебе выше постом написал, повторяюсь опять:
[UninstallDelete]
Name: {app}\*; Type: filesandordirs
Удалятса все файлы и подкаталоги!!
Обрати внимание, что я поставил символы \* после {app} .

ZaV
15-04-2006, 01:34
извиняюсь что не поправил и скрипт и свой предыдущий пост но после того как запостил поправил строку на Name: {app}\*; Type: filesandordirs эффект 0 ... т.е. так же остается файл лога ... как вариант может просто убивать процессы и спайдера и спайдермэйла и валить их сразу при анинстале a не после ребута

boss911
15-04-2006, 03:05
ZaV
может просто убивать процессы и спайдера и спайдермэйла и валить их сразу при анинстале
Я бы так и сделал, только {app}\* всеровно остав, оно не как не помешает!!

ZaV
17-04-2006, 14:14
переделал скрипт (http://rapidshare.de/files/18215824/drweb.zip.html) теперь процессы убиваются сразу. папка удаляется. заодно и изменил номер версии в реестре потому как перешел на 4.33.2

Rage Steel
15-08-2006, 15:51
Спасибо ZaV, за отличное начинание.

Я немного скорректировал сценарий под свои нужды. Если кому интересно, забирайте: www.gt2.ru/files/drweb-setup.zip (http://www.gt2.ru/files/drweb-setup.zip).

Список изменений и пожеланий:

; Cкорректировал URL'ы - адрес разработчика - www.drweb.com
; Скорректировал пути, название группы и ярлыков
; Английские файлы справки, лицензия тоже больше не ставятся
; Хорошо хоть планировщик тут уже не ставится
; Добавлен файл drwspcnt.dll, без которого не ставился spiderml.exe
; Добавлени ini-файл для установки русского языком по умолчанию

; На будущее:
; Хотелось бы ещё чтобы он подхватывал обновления из текущего каталога самостоятельно
; Скорректировать русские буквы - там где в реестр добавляется App Paths, там нужен полный путь а не русское название
; Сделать иконку установщику

boss911
15-08-2006, 22:55
Rage Steel
; Хотелось бы ещё чтобы он подхватывал обновления из текущего каталога самостоятельноПолистай хелп, там вроде есть такая переменная, что указывает, что при инстале надо прихватить файлы, которые лежат возле дистрибутива, конечно при этом выставить флаг внешний и не копировать если недоступен!! Вообщем что-то в этом роде там точно есть!!

; Сделать иконку установщикуНу а тут чего сложного, береш иконку от вэба и указуеш ее в скрипте:
[Setup]
SetupIconFile=D:\Мои документы\ICO.ico
Будут проблемы, пиши сюда, постараюсь помочь!!

ZaV
16-08-2006, 08:41
файлы справки тоже выкидывал но потом вернул .. решил что на dvd эти килобайты не спасут а некоторые юзвери очень любят читать help :)
drwspcnt.dll у меня отсутствует как класс я так понимаю это просто разные версии и у меня более старая
что касается ini файла то у меня он просто сразу настроенный под мои нужды в дистриб упихивался ...

насчет подхватывания обновлений то уже реализовано просто не запостил ...
в секции [files] добавляем строчку Source: "{src}\*.vdb"; DestDir: "{app}"; Flags: external;

; Скорректировать русские буквы - там где в реестр добавляется App Paths, там нужен полный путь а не русское название

а вот это я не совсем понял неплохо бы уточнить о чем речь
если об этом Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\DrWeb32W.Exe; ValueType: string; ValueName: Folder; ValueData: {commonprograms}\Dr.Web; то вот оно ;)

boss911
16-08-2006, 17:02
Rage Steel
; Хотелось бы ещё чтобы он подхватывал обновления из текущего каталога самостоятельно Вот ZaV и реализовал эту функцию, о чем я и хотел сказать!!
Source: "{src}\*.vdb"; DestDir: "{app}"; Flags: external;




© OSzone.net 2001-2012