Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Авторам аддонов
Показать сообщение отдельно

Аватара для jameszero

Модератор


Moderator


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

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


Вложения
Тип файла: 7z Miranda_nul.7z
(44.1 Kb, 32 просмотров)

Отвечаю на вопрос в теме c аддоном Miranda IM.
Есть ряд программ, которые для установки достаточно просто скопировать в нужную директорию, создать ярлыки, добавить записи в реестр (последнее опционально)
К таким программам относится и Miranda.
В аддоне я использовал следующий inf файл
Код: Выделить весь код
[Version]
Signature="$Windows NT$"
AdvancedINF=2.5

[Optional Components]
Uninst7

[Uninst7]
OptionDesc			=%PROG_NAME%
Modes				=0,1,2,3
AddReg			=PROG.AddReg
ProfileItems			=PROG.AddShortcut
Uninstall			=mUninst.Uninstall

[DefaultInstall]
OptionDesc			=%PROG_NAME%
Modes				=0,1,2,3
AddReg			=PROG.AddReg
ProfileItems			=PROG.AddShortcut
Uninstall			=mUninst.Uninstall

[Uninstall]
BeginPrompt			=BeginUnInsPrompt
RunPreSetupCommands	=Close.Prog:1
RunPostSetupCommands	=Dir.Delete
EndPrompt			=EndUnInsPrompt
DelReg			=PROG.DelReg
ProfileItems			=PROG.DelShortcut

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

[Close.Prog] 
TASKKILL /F /IM %PROG_1% 
TSKILL %PROG_2%

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

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

[PROG.AddReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayIcon",0,"%16422%\%PROG_DIR%\%PROG_1%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayName",,%PROG_NAME%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayVersion",,"v%PROG_VERS%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","Publisher",,"%PROG_MADE%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","URLInfoAbout",,"%PROG_URL%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","UninstallString",,"rundll32.exe advpack.dll,LaunchINFSection %17%\%PROG_INF%,Uninstall"

[PROG.DelReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon"

[PROG.AddShortcut]
Name		=%SRTC_NAME%
CmdLine	=16422,%PROG_DIR%,%PROG_1%
WorkingDir	=16422,%PROG_DIR%
SubDir		=%PROG_SDIR%
InfoTip		=%PROG_INFO%

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

[Strings] 
PROG_DIR	="Miranda IM" 
PROG_NAME	="Miranda IM"
SRTC_NAME	="Miranda IM"
PROG_VERS	="0.7"
PROG_MADE	="oszone.net"
PROG_URL	="http://forum.oszone.net/forum-62.html"
PROG_INF	="Uninst7.inf"
PROG_1	=miranda32.exe
PROG_2	=miranda32
PROG_SDIR	=""
PROG_INFO	="Программа для общения по ICQ протоколу"
При редактировании только одной секции [String] и переименовании секции инсталляции, можно использовать этот inf для установки/удаления других аддонов. Аддоны должны быть комбинированные, т.е. сначала из sysoc срабатывает данный inf файл, а затем из SVCPACK запускается sfx архив, созданый любым доступным способом, при этом, sfx архив должен просто распаковать файлы в нужную директорию.
Создание ярлыков, внесение информации в реестр (в том числе о деинсталляции) реализовано в inf файле.

Деинсталляция перенесена из привычного для sysoc аддонов места "Установка компонентов Windows" в Установку и удаление программ"
При деинсталляции будет выдан запрос "Вы действительно хотите удалить такую то программу?",
Если программа в данный момент запущена, она будет выгружена из памяти, далее произойдёт удаление директории с программой, ярлыков, записей реестра.
По окончании деинсталляции будет сообщено "Программа такая то удалена"

Приведу пример inf-а для программы Test,
Директория установки - Program Files\Утилиты\Folder\Test
Ярлык - Пуск\Программы\Утилиты\Ярлык Test Program.lnk
Код: Выделить весь код
[Optional Components]
Uninst8

[Uninst8]
OptionDesc			=%PROG_NAME%
Modes				=0,1,2,3
AddReg			=PROG.AddReg
ProfileItems			=PROG.AddShortcut
Uninstall			=mUninst.Uninstall

<skip>

[Strings] 
PROG_DIR	="Утилиты\Folder\Test" 
PROG_NAME	="Test Program"
SRTC_NAME	="Ярлык Test Program"
PROG_VERS	="0.0.0.1"
PROG_MADE	="oszone.net"
PROG_URL	="http://forum.oszone.net/forum-62.html"
PROG_INF	="Uninst8.inf"
PROG_1	=test.exe
PROG_2	=test
PROG_SDIR	="Утилиты"
PROG_INFO	="Программа для примера работы inf файла"
Так же, в файлах txtsetup, dosnet, sysoc необходимо заменить все Uninst7 на Uninst8
И переименовать сам файл Uninst7.inf в Uninst8.inf.
Идея подсмотрена здесь
Пустышку аддона Miranda прикрепил к посту. В sfx архиве реализована защита от случайного запуска.
Если возникли вопросы, спрашивайте.

-------
RuntimePack официальный сайт
Политика ограниченного использования программ для всех редакций Windows
--
мои аддоны в облаке

Не было печали, апдейтов накачали.


Последний раз редактировалось jameszero, 17-10-2007 в 13:38.

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

Отправлено: 14:04, 11-10-2007 | #205

Название темы: Авторам аддонов