Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » Разное - Помогите откорректировать скрипт inf-а

Ответить
Настройки темы
Разное - Помогите откорректировать скрипт inf-а

Аватара для Nun-Nun

Ветеран


Сообщения: 2158
Благодарности: 294


Конфигурация

Профиль | Отправить PM | Цитировать


Сделал аддон, но вылезло несколько проблем:
1) при деинсталляции не удаляются иконки;
2) при деинсталляции через "Установка и удаление программ" записи из реестра не удаляются, а при попытке удалить запись из HKСU или HKLM вручную выскакивает сообщение "Не удаётся открыть "7-Zip". Ошибка при открытии раздела". Если игнорирую и удаляю, то необходимые ветки удаляются сразу и из HKСU и из HKLM. Проблема деинсталляции решается только прописыванием %24%\%PROG_DIR%\Uninst.exe (внутри батник+reg-файл) в секции [Close.Prog], но подозреваю, что это экстрим.

Вот скрипт текстового файла от архива 7Zip и Inf-файла, расположенного внутри.
Код: Выделить весь код
;!@Install@!UTF-8!
SetEnvironment="Name=7-Zip"
SetEnvironment="Vers= 9.20"
SetEnvironment="PathInst=%SystemDrive%\\ARC\\7-Zip"
SetEnvironment="NameInf=7-Zip.inf"
SetEnvironment="DelOld7Zip1=hidcon:cmd /c reg delete \"HKCU\\Software\\7-Zip\" /f"
SetEnvironment="DelOld7Zip2=hidcon:cmd /c reg delete \"HKLM\\Software\\7-Zip\" /f"
SetEnvironment="DelOld7Zip3=hidcon:cmd /c reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\7-Zip_Addon\" /f"
Title="Установка %Name%"
InstallPath="%PathInst%"
BeginPrompt="Сейчас будет установлен %Name%%Vers%"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Подождите..."
RunProgram="%DelOld7Zip1%"
RunProgram="%DelOld7Zip2%"
RunProgram="%DelOld7Zip3%"
RunProgram="fm0:hidcon:cmd /c Move %NameInf% %WINDIR%\\INF"
RunProgram="rundll32 advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
RunProgram="fm0:Install.exe"
AutoInstall1="%DelOld7Zip1%"
AutoInstall1="%DelOld7Zip2%"
AutoInstall1="%DelOld7Zip3%"
AutoInstall1="fm0:hidcon:cmd /c Move %NameInf% %WINDIR%\\INF"
AutoInstall1="rundll32 advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
AutoInstall1="fm0:Install.exe"
Shortcut="26,{%PathInst%\\7zFM.exe},{},{Microsoft\\Internet Explorer\\Quick Launch},{},{%Name%%Vers%},{%PathInst%}"
Shortcut="P,{%PathInst%\\7zFM.exe},{},{Архиваторы\\7-Zip},{},{%Name%%Vers%},{%PathInst%}"
Shortcut="P,{%PathInst%\\Uninst.exe},{},{Архиваторы\\7-Zip},{},{Удаление %Name%%Vers%},{%PathInst%}"
Shortcut="D,{%PathInst%\\7zFM.exe},{},{},{},{7-Zip},{%PathInst%}"
Shortcut1="26,{%PathInst%\\7zFM.exe},{},{Microsoft\\Internet Explorer\\Quick Launch},{},{%Name%%Vers%},{%PathInst%}"
Shortcut1="P,{%PathInst%\\7zFM.exe},{},{Архиваторы\\7-Zip},{},{%Name%%Vers%},{%PathInst%}"
Shortcut1="P,{%PathInst%\\Uninst.exe},{},{Архиваторы\\7-Zip},{},{Удаление %Name%%Vers%},{%PathInst%}"
Shortcut1="D,{%PathInst%\\7zFM.exe},{},{},{},{7-Zip},{%PathInst%}"
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
FinishMessage="%Name%%Vers% установлен!"
;!@InstallEnd@!
Код: Выделить весь код
[Version]
Signature="$Windows NT$"

[DefaultInstall]
AddReg			=PROG.AddReg
; CopyFiles		=Files1,Files2

[Uninstall]
BeginPrompt		=BeginUnInsPrompt
RunPreSetupCommands	=Close.Prog:1
RunPostSetupCommands=Dir.Delete:1
EndPrompt		=EndUnInsPrompt
DelFiles		=Files1:1, Files2:1
DelReg			=PROG.DelReg
ProfileItems	=PROG.DelShortcut,PROG2.DelShortcut,PROG3.DelShortcut

[BeginUnInsPrompt] 
Title			=Деинсталляция %PROG_NAME%
Prompt			=Вы действительно хотите удалить %PROG_NAME% и все компоненты программы? 
ButtonType		=YESNO

[Close.Prog]
TASKKILL /F /IM %PROG_1%
TSKILL %PROG_2%
%24%\%PROG_DIR%\Uninst.exe

[Dir.Delete]
rundll32.exe advpack.dll,DelNodeRunDLL32 %24%\%PROG_DIR%

[EndUnInsPrompt]
Prompt			=Программа %PROG_NAME% удалена.

[DestinationDirs]
Files1=-1, %24%\%PROG_DIR1%
Files2=-1, %24%\%PROG_DIR%

[Files1]
en.ttt
ru.txt

[Files2]
7-zip.chm
7-zip.dll
7z.dll
7z.exe
7z.sfx
7zCon.sfx
7zFM.exe
7zG.exe
Descript.ion
History.txt
License.txt
Readme.txt
Uninstall.exe
Uninst.exe

[PROG.AddReg]
HKCU,%KEY_UNINST1%,"Path",0x0,"%24%\%PROG_DIR%"
HKCU,%KEY_UNINST1%,"Lang",0x0,"ru"
HKCU,"%KEY_UNINST1%\FM","Editor",0x0
HKCU,"%KEY_UNINST1%\FM","Diff",0x0
HKCU,"%KEY_UNINST1%\FM","ShowDots",0x10001,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","ShowSystemMenu",0x10001,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","ShowRealFileIcons",0x10001,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","FullRow",0x10001,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","ShowGrid",0x10001,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","AlternativeSelection",0x10001,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","SingleClick",0x10001,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","FolderShortcuts",0x1
HKCU,"%KEY_UNINST1%\FM","FolderHistory",0x1,43,00,3a,00,5c,00,54,00,65,00,6d,00,70,00,5c,00,00,00,43,00,3a,00,5c,00,00,00,1a,04,3e,04,3c,04,3f,04,4c,04,4e,04,42,04,35,04,40,04,5c,00,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","PanelPath0",0x0,"%24%Temp\"
HKCU,"%KEY_UNINST1%\FM","FlatViewArc0",0x10001,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","PanelPath1",0x0
HKCU,"%KEY_UNINST1%\FM","FlatViewArc1",0x10001,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","ListMode",0x10001,02,03,00,00
HKCU,"%KEY_UNINST1%\FM","Position",0x1,42,00,00,00,54,00,00,00,f2,04,00,00,c2,03,00,00,00,00,00,00
HKCU,"%KEY_UNINST1%\FM","Panels",0x1,01,00,00,00,00,00,00,00,52,02,00,00
HKCU,"%KEY_UNINST1%\FM\Columns","RootFolder",0x1,01,00,00,00,00,00,00,00,01,00,00,00,04,00,00,00,01,00,00,00,64,00,00,00
HKCU,"%KEY_UNINST1%\FM\Columns","FSDrives",0x1,01,00,00,00,00,00,00,00,01,00,00,00,04,00,00,00,01,00,00,00,64,00,00,00,00,11,00,00,01,00,00,00,64,00,00,00,01,11,00,00,01,00,00,00,64,00,00,00,14,00,00,00,01,00,00,00,64,00,00,00,03,11,00,00,01,00,00,00,64,00,00,00,18,00,00,00,01,00,00,00,64,00,00,00,02,11,00,00,01,00,00,00,64,00,00,00
HKCU,"%KEY_UNINST1%\FM\Columns","FSFolder",0x1,01,00,00,00,00,00,00,00,01,00,00,00,04,00,00,00,01,00,00,00,64,00,00,00,07,00,00,00,01,00,00,00,64,00,00,00,0c,00,00,00,01,00,00,00,64,00,00,00,0a,00,00,00,01,00,00,00,64,00,00,00,0b,00,00,00,01,00,00,00,64,00,00,00,09,00,00,00,01,00,00,00,64,00,00,00,08,00,00,00,01,00,00,00,64,00,00,00,1c,00,00,00,01,00,00,00,64,00,00,00
HKCU,"%KEY_UNINST1%\Options","CascadedMenu",0x10001,01,00,00,00
HKCU,"%KEY_UNINST1%\Options","ContextMenu",0x10001,77,3f,00,00
HKCU,"%KEY_UNINST1%\Options","WorkDirType",0x10001,02,00,00,00
HKCU,"%KEY_UNINST1%\Options","WorkDirPath",0x0,"%24%Temp"
HKCU,"%KEY_UNINST1%\Options","TempRemovableOnly",0x10001,01,00,00,00
HKLM,%KEY_UNINST1%,"Path",0x0,"%24%\%PROG_DIR%"
HKLM,%KEY_UNINST%,"DisplayIcon",0,"%24%\%PROG_DIR%\%PROG_1%"
HKLM,%KEY_UNINST%,"DisplayName",,"%PROG_NAME%"
HKLM,%KEY_UNINST%,"DisplayVersion",,"%PROG_VERS%"
HKLM,%KEY_UNINST%,"Publisher",,"%PROG_MADE%"
HKLM,%KEY_UNINST%,"URLInfoAbout",,"%PROG_URL%"
HKLM,%KEY_UNINST%,"UninstallString",,"rundll32 advpack,LaunchINFSection %17%\%NAME_INF%.inf,Uninstall"


[PROG.DelReg]
HKLM,%KEY_UNINST%
HKLM,%KEY_UNINST1%
HKCU,%KEY_UNINST1%

[PROG.DelShortcut]
Name		=%SRTC_NAME%,0x00000002
SubDir		=%PROG_SDIR%

[PROG2.DelShortcut]
Name		=%SRTC_NAME%,0x00000002
SubDir		=%PROG_SDIR2%

[PROG3.DelShortcut]
Name		=%SRTC_NAME%,0x00000003
SubDir		=%PROG_SDIR3%

[Strings]
KEY_UNINST	="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip_Addon"
KEY_UNINST1	="Software\7-Zip"
PROG_DIR	="ARC\7-Zip"
PROG_DIR1	="ARC\7-Zip\Lang"
PROG_NAME	="7-Zip 9.20"
SRTC_NAME	="7-Zip"
PROG_VERS	="9.20"
PROG_MADE	="Samodelkin.net"
PROG_URL	=""
NAME_INF	="7-Zip"
PROG_1		=7zFM.exe
PROG_2		=7-Zip
PROG_SDIR	="Архиваторы\7-Zip"
PROG_SDIR2	="..\..\Рабочий стол"
PROG_SDIR3	="..\..\Application Data\Microsoft\Internet Explorer\Quick Launch"
Та же самая процедура удаления, выполненная с помощью батника и reg-файла происходит без проблем.

Код: Выделить весь код
@Echo off
Move %SystemDrive%\ARC\7-Zip\Uninst.exe %SystemDrive%\Temp
%SystemDrive%\Temp\Uninst.exe
RD /S /Q %SystemDrive%\ARC\7-Zip >nul
Del %SystemRoot%\Inf\7-Zip.inf
Regedit /s Uninst.reg
Del %0
Код: Выделить весь код
Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\7-Zip]
[-HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip_Addon]

Отправлено: 01:27, 04-01-2011

 

Аватара для Bodya.N

Пользователь


Сообщения: 106
Благодарности: 40

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: zip inf.zip
(1.7 Kb, 15 просмотров)

Nun-Nun,
1)Ярлыки созданные вами называются "7-Zip 9.20",а не "7-Zip"
Цитата Nun-Nun:
SRTC_NAME ="7-Zip" »
вроде как...
2)Удалите вот это:
Цитата Nun-Nun:
%24%\%PROG_DIR%\Uninst.exe »
и все из реестра удалится.
Не в обиду ,но если
Цитата Nun-Nun:
не удаляются иконки...записи из реестра не удаляются »
,значит где-то допущена банальная синтаксическая ошибка.
Возьмите для примера уже готовый аддон 7-zip(например от Gora) и сравните .inf со своим.
Прикрепляю .inf который у меня (правда для win 7, ваш для XP будет немного отличаться).
Удачи

Последний раз редактировалось Bodya.N, 06-01-2011 в 00:00.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:49, 05-01-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Nun-Nun

Ветеран


Сообщения: 2158
Благодарности: 294

Профиль | Отправить PM | Цитировать


Bodya.N,

С ярлыками уже разобрался. Удаление через апплет "Установка и удаление программ" нормально работает, но хотелось бы добиться того же самого с помощью ярлыка-деинсталлятора в меню "Архиваторы\7-Zip". Насколько понимаю, нужно в качестве выполняемой команды каким-то образом прописать ярлыку такую команду: Rundll32.exe advpack.dll,LaunchINFSection %SystemRoot%\Inf\7-Zip.inf,DefaultInstall,0 . Но как ни пытался - не работает, винда жалуется, что не может найти inf-файл.

-------
Свобода не означает вседозволенность.


Последний раз редактировалось Nun-Nun, 06-01-2011 в 05:05.


Отправлено: 04:44, 06-01-2011 | #3


Аватара для Bodya.N

Пользователь


Сообщения: 106
Благодарности: 40

Профиль | Отправить PM | Цитировать


Nun-Nun,все должно работать проверено очень много раз и если
Цитата Nun-Nun:
винда жалуется, что не может найти inf-файл »
,значит его там попросту нет.
Цитата Nun-Nun:
ярлыка-деинсталлятора »
для деинсталяции нужна вот такая команда:
Код: Выделить весь код
Rundll32.exe advpack.dll,LaunchINFSection 7-Zip.inf,Uninstall,0
и еще один момент, если .inf лежит в %windir%\Inf ,то путь к нему прописывать не нужно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:38, 06-01-2011 | #4


Аватара для Nun-Nun

Ветеран


Сообщения: 2158
Благодарности: 294

Профиль | Отправить PM | Цитировать


Bodya.N,

Да, прошу прощения, Вы правы. Скопировал строку, но не заметил, что там DefaultInstall вместо Uninstall закрался.
Цитата Bodya.N:
значит его там попросту нет. »
К сожалению (или, наоборот, к счастью), он там лежит и никуда не делся. Проверял многократно. Просто вся эта строка Rundll32.exe advpack.dll,LaunchINFSection 7-Zip.inf,Uninstall,0 почему-то работает только при деинсталляции из апплета "Установка и удаление программ", но из меню "Программы" никак работать не хочет. Видимо для команд меню "Пуск" синтаксис иначе прописывается, и как строчка в этом случае должна выглядеть - ... её знает. В общем, на этом дело и застряло. Пришлось для данной цели использовать батник, засунутый в sfx-архив, но в результате возникла проблема с его самоудалением. Пока выкрутился из положения путём запуска батника с переносом его из папки программы в %Temp% и вызовом inf-овской секции [Uninstall], которая при выполнении убивает батниковский процесс, если он запущен, и удаляет батник.
Конечно, если бы удалось разобраться с синтаксисом строки Rundll32.exe advpack.dll,LaunchINFSection 7-Zip.inf,Uninstall,0 применительно к меню "Программы", возможно все эти танцы с бубном и не понадобились.
Прошу прощения за длинное описание.

-------
Свобода не означает вседозволенность.


Отправлено: 14:09, 06-01-2011 | #5


Аватара для Bodya.N

Пользователь


Сообщения: 106
Благодарности: 40

Профиль | Отправить PM | Цитировать


Цитата Nun-Nun:
меню "Программы" никак работать не хочет »
если чесно не понял что работать не хочет?Там находятся всего лишь ярлыки к чему-то...Добавьте в меню "Пуск" ярлык к этому батнику и все заработает.
Можно еще .bat в .exe конвертировать спомощью вот этой утилитки(чтобы не создавать SFX архив и ничего никуда не переносить).
А вообще мы не ищем легких путей... Совсем забыл есть решение намного проще.Допишите эти строчки в свой скрипт куда следует:
Код: Выделить весь код
[DefaultInstall]
;Добавить ярлык "Удалить Программу" в Главное меню\Программа
ProfileItems=PROG4.AddShortcut

[Uninstall]
ProfileItems=PROG.DelShortcut,PROG2.DelShortcut,PROG3.DelShortcut,PROG4.DelShortcut

[PROG4.AddShortcut]
Name="%PROG UNINST%"
CmdLine =11,,"rundll32 advpack,LaunchINFSection %17%\%NAME_INF%.inf,Uninstall"
SubDir		          =%PROG_SDIR%
WorkingDir	  =11
InfoTip=%INFO%

[PROG4.DelShortcut]
Name		=%PROG UNINST%,0x00000002
SubDir		=%PROG_SDIR%

[Strings]
PROG UNINST ="Удалить программу"
INFO ="Деинсталляция программы"
и соответственно в конфигурационном файле подправьте создание ярлыков.

Последний раз редактировалось Bodya.N, 06-01-2011 в 15:19. Причина: дополнительная информация

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:41, 06-01-2011 | #6


Аватара для Nun-Nun

Ветеран


Сообщения: 2158
Благодарности: 294

Профиль | Отправить PM | Цитировать


Цитата Bodya.N:
если чесно не понял что работать не хочет? Там находятся всего лишь ярлыки к чему-то... Добавьте в меню "Пуск" ярлык к этому батнику и все заработает.»
С батником-то ярлык нормально работает. Имелось в виду, что нужно в качестве выполняемой команды присвоить ярлыку не выполнение батника, а строку Rundll32.exe advpack.dll,LaunchINFSection 7-Zip.inf,Uninstall,0 , т.к. тогда не нужно заморачиваться с самоудалением батника.

За ссылку и скрипт моё Вам огромное человеческое спасибо! Трудно новичку разобраться во всех скрипто-хитросплетениях! Буду пробовать.

-------
Свобода не означает вседозволенность.


Последний раз редактировалось Nun-Nun, 06-01-2011 в 17:09.


Отправлено: 17:02, 06-01-2011 | #7



Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » Разное - Помогите откорректировать скрипт inf-а

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.: INF-файлы. Помощь и советы :. rasul007 Автоматическая установка приложений 30 28-10-2015 22:52
Ошибка Установки INF файла (Advanced INF Install ) .:[invisible]:. Автоматическая установка Windows 2000/XP/2003 7 04-03-2013 11:29
C:\WINDOWS\inf помогите разобраться aptem12 Хочу все знать 10 03-12-2010 17:48
Любой язык - Как добавить информацию об INF файле в Sysoc.inf Dring Скриптовые языки администрирования Windows 0 17-05-2009 10:53
Хочу собрать комп. Помогите откорректировать ChuChuKa Выбор отдельных компонентов компьютера и конфигурации в целом 33 26-09-2006 15:25




 
Переход