Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   Скрипт NSIS для перепаковки AIMP2+Сборки (http://forum.oszone.net/showthread.php?t=101182)

hb860 21-02-2008 09:42 745239

Скрипт NSIS для перепаковки AIMP2+Сборки
 
Вложений: 1
Cкрипт для NSIS, позволяющий создать свою сборку этой замечательной программы.
После компиляции скрипта,получается инсталлятор, который имеет опции выбора того, что ставить.
ВНИМАНИЕ!
Этот скрипт предоставляется вам исключительно для персонального использования.Компилируя им свою сборку, вы обязуетесь никогда и нигде не распространять её, как с целью получения прибыли, так и для любой другой цели. Код и сборка предоставлены в общий доступ с любезного разрешения Артёма Измайлова. Изменяя код этого скрипта, и распространяя модифицированный скрипт или саму сборку на его основе, вы нарушаете лицензию использования AIMP2 и условия, на которых получено разрешение на создание скрипта и сборки.
Официальный сетевой ресурс плеера: http://wwww.aimp.ru
Описание инсталлятора

Скрипт
-ставит ассоциации на все форматы AIMP2
-корректно ставит ассоциации в NT6.x
-удаляет ассоциации при удалении приложения
-поддерживает файл ответов для тихой установки

Скомпилированный инсталлятор поддерживает всего два ключа командной строки - /G и /S
/G - запускает инсталлятор в режиме генератора файла ответов, примерно также работает инсталлятор к-лайт кодеков с ключом -MakeUnatended. Расставляете галки на нужных компонентах, в системе никаких изменений не происходит, а факт выбора компонентов записываются в файл с именем <ИМЯ_СБОРКИ_БЕЗ_РАСШИРЕНИЯ>.ini.

/S - ну этот ключ в представлении не нуждается, правда, теперь при его указании инсталятор смотрит наличие файла ответов, и если текущий компонент помечен как выбранный, компонент устанавливается, в противном случае компонент игнорируется. Если файла ответов нет, происходит обычная тихая установка.

Возможность указания пользовательской шкуры, библиотеки значков и папки установки вынесена в файл ответов. В файл ответов эти параметры в последней версии скрипта добавляются через специальную страницу режима генератора:
Код:
[advanced]
SkinFile=Lagoon.acs2
IconFileName=aimp classic2.dll
Directory=%systemdrive%\Aimp2

Опция Directory понимает %systemdrive%, %programfiles%, %appdata%, %windir%. Удалите её из файла ответов, и программа встанет сама в Program files\aimp2.
Скрипт поддерживает упаковку аимпа с TOOLS и без, без необходимости его правки. Проверяется наличие соответствующих файлов, и если их нет, ярлыки на инструменты просто не создаются.
ВНИМАНИЕ! Если вы запускали генератор файлом, к примеру AIMP2- 2.6.0.250.exe, а потом переименовали в AIMP2.exe, не забудьте переименовать и файл ответов из AIMP2- 2.6.0.250.ini в AIMP2.ini, иначе он не подцепится.



Код скрипта не лезет в сообщение :) См. вложение

Создание своего дистрибутива

0. Измените в скрипте !define pkgdir на !define pkgdir "с:". Или на другое другое место, где вам удобно хранить исходные файлы. Скрипт ищет файлы по принципу pkgdir+\aimp\player\ и так далее.
1. Создайте на диске C: папки c:\Aimp\Player, c:\Aimp\skins\, c:\aimp\Icons, c:\Aimp\profile
2. Положите в С:\Aimp\Player оригинальный набор файлов программы. Их можно получить, распаковав дистрибутив программы архиватором 7-zip
3. В папку c:\aimp\skins\ поместите свои любимые скины
4. В папку c:\aimp\icons\ поместите значки для типов файлов
5. Необязательно. В папку c:\Aimp\profile положите содежимое папки %programfiles%\aimp\data\profile(если у Вас "однопользовательский" режим использования программы, в противном случае положите туда содержимое %APPDATA%\AIMP). Смотрите также этот пост
5. Скомпилируйте скрипт. На выходе получится файл Aimp2-<текущая версия>.exe


Проверялось: Windows XP SP3 x86, Windows 7 7600 RTM, Vista SP2. Теоретически работает во всех NT6.x при запуске инсталлятора с повышенными привилегиями.
Сборку на основе 2.61.570 с AIMP TOOLS можно загрузить здесь, а описание состава сборки - здесь

LonerD 25-02-2008 20:10 748192

Спасибо, но после установки выскакивает неприятное окошко выбора языка и папки для сохранения настроек.
Проблема в этой секции:

Section "Ассоциации файлов"
SectionIn 1 2
ExecWait '$INSTDIR\aimp2.exe /REG=R'
SectionEnd

Что подправить в скрипте, чтоб была полностью тихая установка и в то же время регистрировались ассоциации файлов?

PS
Проблему решил, хотя и несколько дуболомным методом :)
Распаковать содержимое прикрепленного файла в папку с AIMP2 (ту, которую планируется сжимать). Тогда программа будет думать, то она уже запускалась и не задавать глупых вопросов.

hb860 26-02-2008 10:22 748484

Я, собственно, сам так и делаю :)

Комсомолец 30-03-2008 17:52 771000

В связи с последними изменениями в Aimp2, а точнее-многоязычность, не получается тихого инсталла. Просит выбрать язык. Автор, поправьте, пожалуйста, скрипт. Спасибо.

hb860 31-03-2008 10:05 771372

Цитата:

Цитата DPavlik82
Распаковать содержимое прикрепленного файла в папку с AIMP2 (ту, которую планируется сжимать). Тогда программа будет думать, то она уже запускалась и не задавать глупых вопросов. »

Вот так пробовалось ?
P.S.
Цитата:

поправьте, пожалуйста, скрипт
Щас немного напряжно со временем, "разгребу" - попробую избавиться от "танцев с папками".

hb860 02-04-2008 12:09 773033

Цитата:

Цитата Комсомолец
поправьте, пожалуйста, скрипт »

Просьба выполнена, обновлена шапка

Комсомолец 11-04-2008 14:50 779529

Цитата:

Цитата hb860
Просьба выполнена, обновлена шапка »

Огромное спасибо! :)

j_onion 15-04-2008 14:28 781866

Подскажите плиз, чем распаковать инсталлер Аимпа. или просто взять папку с установленным плейером и непарится?

hb860 15-04-2008 17:37 782018

Именно распаковать его может 7-Zip
Цитата:

Цитата j_onion
просто взять папку с установленным плейером и непарится »

На самом деле намного проще

j_onion 16-04-2008 01:11 782255

со строчками "по-умолчанию" :) -
!define MUI_ICON "Icons\modern-install.ico"
!define MUI_UNICON "Icons\modern-uninstall.ico"

скрипт не скомпилился, при их изменении на:
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"

все прошло нормально, hb860, благодарю за скрипт

hb860 17-04-2008 12:46 783181

Я просто значки использую "нестандратные", а когда постил - забыл поправить. Спасибо за замечание.

hb860 26-04-2008 12:50 789585

Если кому-то лень возиться, ссылка на мою готовую сборку: Ссылка Зеркало Зеркало

LonerD 12-05-2008 03:11 800055

А как насчет адаптации скрипта к новой бета версии?

hb860 12-05-2008 09:08 800120

Адаптировал.
Обновляю шапку.

LonerD 12-05-2008 17:21 800641

hb860, спасибо. Жалко, что ключик /REG=R в последних версиях программы уже не срабатывает тихо ((, программа запускается и приходится ее вручную убивать.

hb860 13-05-2008 09:14 801175

Я разговаривал с автором, ключик на следющей неделе будет работать, с его слов

hb860 15-05-2008 09:19 803126

Вышла новая сборка 2.50.205. Ключ /Reg=R снова работает, всвязи с чем обновлена шапка(там же моя новая сборка для ленивых). Если Вы предпочитаете beta-версии, Вы можете собрать свою собственную сборку, используя соответсвующий скрипт :)

Что изменилось в AIMP?
читать дальше »

Core
+ Переведено на BASS v2.4
+ Новый PluginController
+ Новые возможности для Addon-плагинов
+ Возможность добавления своих закладок в опции
+ Возможность работы с функциями сохранения / загрузки плейлистов
+ Расширены возможности работы с плейлистом
+ Новый HotKey Manager
+ Возможность назначения всем функциям как глобальных, так и локальных клавиш
+ Новый DSP Engine
+ Добавлен логарифмический регулятор громкости
+ Добавлен фильтр нормализации звука
+ Добавлен фильтр реверса каналов (только для стерео)
+ Добавлен фильтр удаления голоса
+ Добавлен фильтр пропуска тишины при проигрывании трека
+ Добавлен Stereo Enhancer фильтр (только для стерео)
+ Улучшена работа с Winamp DSP
+ Переделан Winamp Input Wrapper
+ Обновлен SkinsEngine
+ возможность создания клонов кнопок / флажков / полосок прокрутки
+ добавлена возможность выравнивания объектов по центру
+ добавлена возможность задания выравнивания текста в Label-элементах
+ Оптимизация кода

Audio Library v2
+ Быстрый поиск пунктов в дереве группировки
+ Возможность выбора положения столбцов таблиц
+ Новое меню обслуживания базы данных
+ Обновленный интерфейс библиотеки
+ Панель быстрой навигации
+ Поддержка FLAC / APE
+ Расширенная интеграция с плеером
+ Сохранение относительных путей к файлам со сменных носителей

Playlists
+ Оптимизация кода
+ Поддержка m3u8 плейлистов
+ При добавлении папки в пустой плейлист его имя берется как название папки
+ Прокрутка закладок плейлиста колесиком мыши
+ Уменьшено кэширование данных
+ Ускорена загрузка / сохранение плейлистов
+ Функция автоматической сортировки плейлистов в окне "Playlist Customization"

Player
+ Возможность автосохранения плейлиста по адресу, откуда он был открыт (раньше сохранялся всегда в папку с профилем)
+ Возможность использования условного оператора в строковых шаблонах
+ Жанры упорядочены по алфавиту
+ Мигание кнопки "стоп" при включении опции "остановить после трека"
+ Опции воспроизведения MIDI / MOD файлов
+ Отображение реальных названий треков вместо "следующий / предыдущий файл" на кнопках навигации
+ Отображение статуса плеера в подсказке трей иконки
+ Возможность назначения таблицы перекодировки для не-юникод строк
+ Доработка функции "копировать в папку" - добавлен список "последние папки"
+ Новый модуль воспроизведения / захвата интернет-радио
+ Переработан модуль работы с CUE-Sheets (переключение по сетам происходит через контекстное меню на полосе текущий позиции трека)
+ Переработана эргономика окна настроек
+ Расширены настройки прозрачности основных окон
+ Обновлен Quick Tag Editor
+ добавлена кнопка копирования данных в буфер обмена
+ добавлена кнопка копирования файла в буфер обмена
+ функция автозаполнения тегов из имени файла / пути к файлу
+ новый дизайн
+ Обновлен менеджер закладок
+ Настройка вида отображения
+ Расширенный поиск
+ возможность задания плейлистов для поиска файла
+ отображение номера файла в очереди

Audio Converter
+ Переписан движок конвертера
+ Переведен на command-line кодеры
+ Переработан интерфейс
+ Добавлены кодеры FLAC, AAC, MPC/MP+

Advanced Tag Editor
+ Оптимизирован код
+ Добавлена функция AutoTag
+ Переработан интерфейс
+ Возможность записи обложки нескольким файлам
+ Возможность удаления тегов у нескольких файлов


Скрипт 2.50.205 совместим с Aimp2 2.50 beta build 210

hb860 22-07-2008 10:57 858210

Обновлен и доработан инсталятор. Все основые изменения, инструкция и ссылки в шапке. (+ язык по умолчанию задается и утилит, и значки у исталятора стандартные)

Imago_ 02-08-2008 07:56 866283

Вышел новый AIMP
Version: 2.5 RC 3
Build: 270
Build Date: 01.08.2008
Изменения
читать дальше »
01.08.2008 [RC3]
* Оптимизация кода SkinEngine
- Исправлено: инверсия прокрутки колесиком мыши
- Исправлено: не запускался быстрый редактор тегов после повторного клика по бегущей строке
- Исправлено: не приходило сообщении о клике мышкой в активный плагин визуализации
- Исправлено: не сбрасывалась позиция прокрутки названия в плейлисте при физическом удалении файла
- Исправлено: ошибки в работе CardsView в аудио библиотеке
- Исправлено: ошибки с кешированием данных в расширенном поиске
- Исправлено: ошибка со сворачиванием библиотеки, когда плеер не прицеплен к ней
- Исправлено: ошибка во включении прозрачности при сворачивании плера в трейконтрол
- Исправлено: ошибка с назначением папки для сортировки файлов по шаблону в Расширенном редакторе тегов
- Исправлены мелки ошибки и недоработки

ftp://catode.ru/AIMP/aimp_2.50.270_rc3.zip
http://www.aimp.ru/files/beta_test/a...50.270_rc3.zip
http://soft.oszone.net/files_soft/ai...50.270_rc3.zip

Вопрос к автору скрипта - совместимость присутствует?

проверил - присутствует (с соответствующим редактированием версии)

Комсомолец 24-08-2008 18:19 882698

Воздержусь пока от бета-версии. 2.11 устраивает. А скрипт скопировал.

Комсомолец 25-08-2008 17:01 883385

Блиииин!!! чёт все равно спрашивает язык при silent установке...((( скрипт скачал последний.

Imago_ 25-08-2008 18:18 883480

Цитата:

Цитата Комсомолец
2.11 устраивает »

Цитата:

Цитата Комсомолец
скрипт скачал последний. »

именно скачал? или из "читать дальше" скопипастил?
Цитата:

Цитата hb860
Скрипт для версии 2.11 в файле-вложении этого сообщения. Для последних версий он не подходит, и функционально уступает текущему. »

зы.все-таки попробуй RC3 - ИМХО поинтересней будет..

Комсомолец 25-08-2008 19:17 883544

hb860, может сможешь сделать, чтобы язык не спрашивал?

Комсомолец 25-08-2008 19:19 883548

Imago_, ну конечно скачал. читать вроде научили )) старый скрипт просто случайно удалил((
а плагины к 2.50 RC3 подходят от 2.11?

Imago_ 26-08-2008 18:16 884331

Комсомолец, не все. Какие-то поменялись - смотри форум.
Цитата:

Цитата Комсомолец
может сможешь сделать »

А иконки зачем такие в папку Icons забросил? Чтоб вес меньше был? :) А я-то думаю - что асоциации нормально реализуются, а иконки в виде холостых файлов.. Там должны лежать dll-ки с иконками.
Если на компе будут общие настройки (а я сужу именно по папке Data\AllUsers) измени в директории Data в AIMP.INI UserMode должно быть равно нулю.
Если будет несколько пользователей (или один, но настройки не общие) тогда нужны еще папки с их настройками. Пробуй.

Я, конечно, не hb860, но как вариант - посмотри что получилось.

Комсомолец 27-08-2008 01:26 884680

Цитата:

Цитата Imago_
А иконки зачем такие в папку Icons забросил? »

это иконки инсталятора. вместо стандартных. а dll-ка что-то не попала в архив.
Цитата:

Цитата Imago_
в директории Data в AIMP.INI UserMode должно быть равно нулю. »

думаешь, этот пункт влияет на выбор языка?

Цитата:

Цитата Imago_
не все. Какие-то поменялись »

поставил. неплохо. но он у меня сразу материться начал-снес его.

Комсомолец 27-08-2008 01:50 884687

Цитата:

Цитата Imago_
А иконки зачем такие в папку Icons забросил? »

что с иконками, что без них, но с dll-кой -не меняется иконки файлов.
меняются. только если dll переименовать в aimp2.dll

Imago_ 27-08-2008 03:26 884702

Цитата:

Цитата Комсомолец
пункт влияет на выбор языка »

Этот пункт влияет на режим использования AIMP2 - общий или многопользовательский. При последнем варианте - для каждого пользователя создается отдельная папка с настройками (если они не были в установочном файле конфигуратор, естественно, опрашивает пользователя о языке установки).
Цитата:

Цитата Комсомолец
меняются. только если dll переименовать в aimp2.dll »

Для того чтобы был предустановленный пакет иконок нужно либо юзать 2.50 с использованием в сборке (при установке) ключа /ICONS= с указанием вашей dll (см. шапку топика).
Либо: установить оригинальный AIMP2, задать при установке общий режим, закинуть все файлы что вам необходимы, задать все настройки (в том числе выбор icons.dll) и закинуть получившуюся папку Data в установочный пакет для сборки.
В этом посте есть готовый вариант..

Комсомолец 27-08-2008 16:38 885121

Imago_, я скачал. Спасибо большое. Все получилось с разъяснениями. Просто давно не паковал его-вот и подзабыл))
а 2.50 немного подожду использовать все-таки.

Комсомолец 28-08-2008 19:04 886002

Что-то не интегрируется аимп в контекстное меню папки. Подскажите, куда и что подставить, чтобы исправить. Галку в опциях ставлю-толку нет. и в .ini файлах такой опции не нашёл. Неудобно, однако.

hb860 31-08-2008 10:37 887637

За контекстное меню отвечает библиотечка aimp_shell.dll
в скрипте есть её регистрация:
Код:

RegDLL  "$INSTDIR\System\aimp_shell.dll"
руками регистрация делается так:
Код:

regsvr32 "%programfiles%\aimp2\System\aimp_shell.dll"

Комсомолец 31-08-2008 15:48 887824

hb860,
Код:

Section "Ассоциации файлов"
        SectionIn 1 2 3
        ExecWait '$INSTDIR\aimp2.exe /REG=R'
        ExecWait 'regsvr32.exe -s $INSTDIR\System\aimp_shell.dll'

Вот часть кода скрипта. Не интегрируется в контекстное меню папки. С ассоциациями файлов всё отлично.

Комсомолец 02-09-2008 13:21 889216

hb860, поправил. всё в норме.

SamLab 03-10-2008 08:11 914733

В последних версиях RC4 строка $INSTDIR\aimp2.exe /REG=R стала запускать выбор языка и установка перестала быть тихой

hb860 03-10-2008 09:18 914758

SamLab, значит, я перепишу скирпт на прописывание ассоциаций без участия самой программы. Прецедент уже был. Кстати, может, это опять "косяк" в ходе разработки. Свяжусь с автором -узнаю, отпишусь. В любом случае планируется переработка скрипта(есть идейка кой-какая)
P.S. : Изменилась структура папок AIMP. Новый скрипт в работе

Imago_ 04-10-2008 05:45 915449

SamLab, не подтверждаю - смотри изменения структуры папки Data.
добавил: сорь.. думал все вносят изменение в скрипт :)
поменяй все Data\AllUsers на Data\Profile

hb860 05-10-2008 00:31 916012

Уважаемые пользователи, скрипт основательно перелопачен! Читаем шапку, и внимательно следуем обновленной инструкции.
Регистрация ассоциаций теперь производится с помощью скрипта, при желании вы можете ассоциировать АИМП хоть на бат-файлы :), иконки типов файлов берутся ил DLLки в /ICONS=, и многое другое поменялось.Вобщем, оптимизировал код чуть-чуть, и чуть-чуть расширил функционал.

katok888 05-10-2008 08:07 916110

hb860, Хочу перепаковать с помощью Inno. Интересует что вносится в реестр и регистрация библиотек. Можете выложить? Спасибо.

Imago_ 05-10-2008 14:34 916297

hb860, может для полноты счастья в скрипте изменить "Section "ACC" на "Section "AAC",
а в строке "WriteINIStr "$INSTDIR\DATA\AIMP.INI" System DefautLang russian.lng" на "WriteINIStr "$INSTDIR\DATA\AIMP.INI" System DefaultLang russian.lng" :)

hb860 05-10-2008 18:03 916438

Хорошо, спасибо,всё поправил :) Ночью писал, очепятался

katok888, в реестр ничего, кроме записи для отображения в "Установке и удалении программ", библиотека регистрируется только одна: aimp_shell.dll

Imago_ 06-10-2008 13:40 917018

katok888, три файлика на выбор: cmd, reg, ini - в одном комплекте (ассоциация с файлами полная, плюс добавлена для *.dts, *.midi, *.ac3).

Спасибо Bulba_S и его утилите для сохранения и восстановления ассоциаций файлов.
зы. необходимо учитывать путь - при установке напрямую этими файлами, он будет "C:\Program Files\AIMP2".
ззы. для отображения в Настройках AIMP2 проассоциированных файлов все равно нужно будет выполнить "aimp2.exe /REG=R"

katok888 06-10-2008 19:37 917282

Imago_, А что если я добавлю ключи реестра, отвечающие за ассоциации файлов в скрипт INNO ?
Цитата:

Цитата Imago_
все равно нужно будет выполнить "aimp2.exe /REG=R" »

??

При совместном использовании с MP3ext, чтобы остались значки от MP3ext, нужно исключить ключи вида
Код:

[HKEY_CLASSES_ROOT\AIMP.xx\DefaultIcon]
@="C:\\Program Files\\AIMP2\\Icons\\aimp2.dll,x"

???

hb860 06-10-2008 21:42 917413

katok888, как это всё относится вообще к inno setup ??
Цитата:

Цитата Imago_
все равно нужно будет выполнить "aimp2.exe /REG=R" »

Блин, да не надо ничё, если корректно прописать в инсталяторе расширения, галки будут стоять как надо! Единственно чё - надо в Aimp2.ini записать файл библиотеки иконок, чтобы отображался в программе, хотя это для эстетов, а не для функциональности.
P.S. Строча всё это, я полагаю, что Вы, уважаемый katok888, пишете скрипт в формате INNO SETUP

Imago_ 07-10-2008 03:32 917610

Цитата:

Цитата hb860
надо в Aimp2.ini записать файл библиотеки иконок »

Цитата:

Цитата hb860
хотя это для эстетов »

Э-э.. собственно это и имелось ввиду - при выполнении команды - происходит запись в конфиг. :) Но пропись напрямую в инишник наверное проще :)
сенЬкс.
Цитата:

Цитата katok888
чтобы остались значки от MP3ext »

а в чем сложность? не писать значки и все. А можно сделать финт ушами - взять понравившиеся значки, запихать в dll отвечающую за иконки в AIMP2 и выставить иконки из dll-ки по умолчанию.

katok888 07-10-2008 20:29 918208

Цитата:

Цитата Imago_
финт ушами »

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

hb860 08-10-2008 09:02 918532

katok888, хм, очень интересно. Пожалуй, в этом есть смысл! Скачаю MP3ext и посмотрю как это он делает

SamLab 12-10-2008 00:09 921520

AIMP 2.50.306 Release
http://www.aimp.ru/files/aimp2/aimp_...06_release.zip
http://soft.oszone.net/files_soft/ai...06_release.zip
http://aimp.010203.ru/aimp_2.50.306_release.zip

Сборка финальной версии на основе скрипта из шапки
http://slil.ru/26227751

hb860 12-10-2008 17:55 921879

Обновил номер сборки в скрипте и саму сборку в шапке

Комсомолец 17-10-2008 11:18 926233

hb860, немного поправил скрипт. Может пригодится, но мне так удобнее. )) посмотри.
читать дальше »
Код:

;Text/Registry definitions
!define PRODUCT_NAME "AIMP2"
!define PRODUCT_VERSION "2.5.0.306"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define BRANDING "By hb860"

;icons indexes definition
!define idxWAV 0
!define idxMP3 1
!define idxOGG 2
!define idxWMA 3
!define idxAUDIO 4
!define idxMOD 5
!define idxFLAC 6
!define idxMPC 7
!define idxSKIN 8
!define idxPLAYLIST 9

; MUI 1.67 compatible ------
!include "MUI.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\aimp.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue-full.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"

;service macroses
!insertmacro GetOptions
!insertmacro RefreshShellIcons

;Common directives
BrandingText "${BRANDING}"
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"
InstallDir "$PROGRAMFILES\AIMP2"
ShowInstDetails show
ShowUninstDetails show

;installation types
InstType "Полная"
InstType "Сокращенная"
InstType "Минимальная"

;variables section
Var SkinFile
Var IconFile
Var IconFileName
Var OpenCommand
Var ProfilePath
Var MultiUser
Var MultiUserCmdValue

;custom filetype registration function
!macro RegisterExtension extenstion /*ContentType PerceivedType*/ ClassName ClassStrDefault IconIndex
  WriteRegStr HKCR "${extenstion}" "" "${ClassName}"
  ;WriteRegStr HKCR "${extenstion}" "PerceivedType" "${PerceivedType}"
  ;WriteRegStr HKCR "${extenstion}" "Content Type" "${ContentType}"
 
  WriteRegStr HKCR "${ClassName}" "" "${ClassStrDefault}"
  WriteRegStr HKCR "${ClassName}\CLSID" "" "{0041494D-5032-4472-6F70-546172676574}"
  WriteRegStr HKCR "${ClassName}\DefaultIcon" "" "$IconFile,${IconIndex}"
  WriteRegStr HKLM "${ClassName}\shell\open" "" "Открыть в AIMP2"
  WriteRegStr HKCR "${ClassName}\shell\open\command" "" "$OpenCommand"
  WriteRegStr HKCR "${ClassName}\shell\open\DropTarget" "CLSID" "{0041494D-5032-4472-6F70-546172676574}"
!macroend



;sections
Section "!${PRODUCT_NAME}"
  SectionIn 1 2 3 RO
  StrCpy $ProfilePath "$INSTDIR\Data\Profile"
  SetOutPath "$INSTDIR\"
  File /r "C:\AIMP2\*.*"
        WriteUninstaller "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\aimp2.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SectionEnd

Section /o "Отдельные настройки на каждого пользователя"
        SectionIn 1
        ;Very important be sure what SetShellVarContext has CURRENT value here
        StrCpy $MultiUser 1
SectionEnd

;=========================================================================================================================
SectionGroup /e "Дополнения"
       
        Section "Скины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Skins"
                File "C:\AIMP2\Skins\*.*"
        SectionEnd

        Section "Иконки типов файлов"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Icons"
                File "C:\AIMP2\Icons\*.*"
        SectionEnd
SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ярлыки"
        Section "В меню Пуск"
                SectionIn 1 2 3
                SetShellVarContext all
                CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Advanced Tag Editor.lnk" "$INSTDIR\AIMP2t.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Converter.lnk" "$INSTDIR\AIMP2c.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Recorder.lnk" "$INSTDIR\AIMP2r.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
        SectionEnd
        Section "На рабочем столе"
                SectionIn 1
                IfSilent +3
                SetShellVarContext all
                CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        SectionEnd
        Section "В панели быстрого запуска"
                SectionIn 1 2
                SetShellVarContext all
                CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        SectionEnd
SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ассоциации файлов"
        Section "-GetIconsDll"
                SectionIn 1 2 3
                ${GetOptions} $CMDLINE "/ICONS=" $IconFileName
                StrCmp $IconFileName "" EmptyIconFile
                IfFileExists "$INSTDIR\Icons\$IconFileName" EndSection IconFileNotExists
                       
                IconFileNotExists:
                        StrCpy $IconFileName ""
                EmptyIconFile:
                        StrCpy $IconFileName "aimp2.dll"
                EndSection:
                        StrCpy $IconFile "$INSTDIR\Icons\$IconFileName"
                        StrCpy $OpenCommand "$INSTDIR\AIMP2.exe $\"%1$\""
        SectionEnd
       
        Section "Контекстое меню проводника"
                SectionIn 1 2
                RegDLL  "$INSTDIR\System\aimp_shell.dll"
        SectionEnd
       
        Section "AAC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aac" "AIMP.AAC" "AIMP2: AAC" ${idxAUDIO}
        SectionEnd
       
        Section "ACS2"
                SectionIn 1 2
                !insertmacro RegisterExtension ".acs2" "AIMP.ACS2" "AIMP2: ACS2" ${idxSKIN}
        SectionEnd
       
        Section "AIF"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aif" "AIMP.AIF" "AIMP2: AIF" ${idxAUDIO}
        SectionEnd       
       
        Section "AIFF"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aiff" "AIMP.AIFF" "AIMP2: AIFF" ${idxAUDIO}
        SectionEnd               
       
        Section "APE"
                SectionIn 1 2
                !insertmacro RegisterExtension ".ape" "AIMP.APE" "AIMP2: APE" ${idxAUDIO}
        SectionEnd       

        Section "AUDIOCD"
                SectionIn 1 2 3
                !insertmacro RegisterExtension "AudioCD" "AIMP.AUDIOCD" "AIMP2: AUDIOCD" ${idxAUDIO}
        SectionEnd               
       
        Section "CDA"
                SectionIn 1 2
                !insertmacro RegisterExtension ".cda" "AIMP.CDA" "AIMP2: CDA" ${idxAUDIO}
        SectionEnd               

        Section "CUE"
                SectionIn 1 2
                !insertmacro RegisterExtension ".cue" "AIMP.CUE" "AIMP2: CUE" ${idxPLAYLIST}
        SectionEnd

        Section "FLAC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".flac" "AIMP.FLAC" "AIMP2: FLAC" ${idxFLAC}
        SectionEnd       

        Section "IT"
                SectionIn 1 2
                !insertmacro RegisterExtension ".it" "AIMP.IT" "AIMP2: IT" ${idxMOD}
        SectionEnd
       
        Section "M3U"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".m3u" "AIMP.M3U" "AIMP2: M3U" ${idxPLAYLIST}
        SectionEnd       
       
        Section "M3U8"
                SectionIn 1 2
                !insertmacro RegisterExtension ".m3u8" "AIMP.M3U8" "AIMP2: M3U8" ${idxPLAYLIST}
        SectionEnd       
       
        Section "MID"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mid" "AIMP.MID" "AIMP2: MID" ${idxAUDIO}
        SectionEnd       

        Section "MO3"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mo3" "AIMP.MO3" "AIMP2: MO3" ${idxMOD}
        SectionEnd       
       
        Section "MOD"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mod" "AIMP.MOD" "AIMP2: MOD" ${idxMOD}
        SectionEnd       

        Section "MP1"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mp1" "AIMP.MP1" "AIMP2: MP1" ${idxMP3}
        SectionEnd

        Section "MP2"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mp2" "AIMP.MP2" "AIMP2: MP2" ${idxMP3}
        SectionEnd       

        Section "MP3"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".mp3" "AIMP.MP3" "AIMP2: MP3" ${idxMP3}
        SectionEnd               

        Section "MPC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mpc" "AIMP.MPC" "AIMP2: MPC" ${idxMPC}
        SectionEnd

        Section "MTM"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mtm" "AIMP.MTM" "AIMP2: MTM" ${idxMOD}
        SectionEnd

        Section "OGG"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".ogg" "AIMP.OGG" "AIMP2: OGG" ${idxOGG}
        SectionEnd

        Section "PLC"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".plc" "AIMP.PLC" "AIMP2: PLC" ${idxPLAYLIST}
        SectionEnd

        Section "PLS"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".pls" "AIMP.PLS" "AIMP2: PLS" ${idxPLAYLIST}
        SectionEnd

        Section "S3M"
                SectionIn 1 2
                !insertmacro RegisterExtension ".s3m" "AIMP.S3M" "AIMP2: S3M" ${idxMOD}
        SectionEnd

        Section "UMX"
                SectionIn 1 2
                !insertmacro RegisterExtension ".umx" "AIMP.UMX" "AIMP2: UMX" ${idxMOD}
        SectionEnd       
       
        Section "WAV"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".wav" "AIMP.WAV" "AIMP2: WAV" ${idxWAV}
        SectionEnd       
       
        Section "WMA"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".wma" "AIMP.WMA" "AIMP2: WMA" ${idxWMA}
        SectionEnd       

        Section "WV"
                SectionIn 1 2
                !insertmacro RegisterExtension ".wv" "AIMP.WV" "AIMP2: WV" ${idxAUDIO}
        SectionEnd
       
        Section "XM"
                SectionIn 1 2
                !insertmacro RegisterExtension ".xm" "AIMP.XM" "AIMP2: XM" ${idxMOD}
        SectionEnd       
        Section "-RefreshIcons"
                SectionIn 1 2 3
                ${RefreshShellIcons}
        SectionEnd
SectionGroupEnd       
;=========================================================================================================================
Section "-PostinstallProfileProcessing"
        ;here we must set current user constats context
        SetShellVarContext current

        ;common INI settings
        CreateDirectory "$INSTDIR\DATA"
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System DefaultLang russian.lng
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System Version 2500
       
        ${GetOptions} $CMDLINE "/MULTIUSER=" $MultiUserCmdValue
        StrCmp $MultiUserCmdValue "" +2
        StrCpy $MultiUser $MultiUserCmdValue
       
        StrCmp $MultiUser 1 PerUserCFG OneUserCFG
       
        PerUserCFG:
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 1
                StrCpy $ProfilePath "$APPDATA\AIMP"
                CreateDirectory "$ProfilePath"
                Goto WriteCFG
        OneUserCFG:       
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 0
                CreateDirectory "$INSTDIR\DATA\Profile"
                Goto WriteCFG
        WriteCFG:
                SetOutPath "$ProfilePath"
                File /nonfatal /r "c:\Aimp2\DATA\Profile\"
               
                IfFileExists "$ProfilePath\AIMP2.INI" EndSection
                WriteINIStr "$ProfilePath\AIMP2.INI" System LangFile russian.lng ;язык по умолчанию для плеера
                WriteINIStr "$ProfilePath\AIMP2r.INI" System LangFile russian.lng ;язык по умолчанию для рекордера
                WriteINIStr "$ProfilePath\AIMP2c.INI" System LangFile russian.lng ;язык по умолчанию для конвертера
                WriteINIStr "$ProfilePath\AIMP2t.INI" System LangFile russian.lng ;язык по умолчанию для таггера       
        EndSection:       
                ${GetOptions} $CMDLINE "/SKIN=" $SkinFile
                StrCmp $SkinFile "" +2
                WriteINIStr "$ProfilePath\AIMP2.INI" Skins DefaultSkin $SkinFile        ;скин               
                WriteINIStr "$ProfilePath\AIMP2.INI" Skins ICL $IconFileName        ;скин
SectionEnd

Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "Удаление программы $(^Name) было успешно завершено."
FunctionEnd

Function un.onInit
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы уверены в том, что желаете удалить $(^Name) и все компоненты программы?" IDYES +2
  Abort
FunctionEnd

Section Uninstall
  UnRegDLL "$INSTDIR\System\aimp_shell.dll"
  ExecWait '$INSTDIR\aimp2.exe /REG=U'
  RMDir /r "$INSTDIR\"
  SetShellVarContext all
  RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
  Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
  Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  SetAutoClose true
SectionEnd


hb860 17-10-2008 13:03 926314

Вот этот код
Код:

File /r "C:\AIMP2\*.*"
затащит в дистрибутив всю папку "C:\AIMP2\Skins\*.*", тогда
Код:

File "C:\AIMP2\Skins\*.*"
File "C:\AIMP2\Icons\*.*"
File /nonfatal /r "c:\Aimp2\DATA\Profile\"

не имеет смысла
Вот это, конечно, не лишнее
Код:

Section "В панели быстрого запуска"
. У меня просто эта панель отключена, поэтому писать не стал:)

Комсомолец 18-10-2008 06:30 926992

Цитата:

Цитата hb860
затащит в дистрибутив всю папку "C:\AIMP2\Skins\*.*", тогда
Код:
File "C:\AIMP2\Skins\*.*"
File "C:\AIMP2\Icons\*.*"
File /nonfatal /r "c:\Aimp2\DATA\Profile\"
не имеет смысла»

сорри, наскоряк делал....не обратил внимания. поправлю.)))

Цитата:

Цитата hb860
File /r "C:\AIMP2\*.*" »

простто так удобнее, чем по диску С папки раскидывать. Да и основные ассоциации в минимальной установе не помешают. А быстрый запуск мне в обязательном порядке нужен, потому и добавил.

hb860 18-10-2008 14:30 927268

Я включу этот ярлык в следующую версию скрипта. Есть ещё кой какие задумки на его счет :)

Комсомолец 19-10-2008 04:14 927784

hb860, я еще пункт "плагины" добавил. Просто их тоже пакет ставлю. Позже файл обновлю-поправишь ошибки. :)

hb860 19-10-2008 21:07 928018

Вобщем, повторяем оригинальный инсталятор :)

Комсомолец 20-10-2008 04:38 928219

Цитата:

Цитата hb860
Вобщем, повторяем оригинальный инсталятор »

Ничего подобного. Просто сборочка под себя, с тихой установкой, с нужными дополнениями, настройками и ярлыками. И при обычной установке есть возможность выбора компонентов. Разве плохо?

hb860 20-10-2008 08:54 928280

Да собственно, для того ето и делалось :) Просто то, что щас мы тут совместными усилиями воротим, скоро повторит оригинальный инсталлер при "громкой" установке, но я ни в коем случае не считаю что это плохо. Скорее это хорошо, в итоге получится практически оригинальных дистриб, который, помимо всего прочего, ещё и
Цитата:

Цитата Комсомолец
сборочка под себя, с тихой установкой, с нужными дополнениями, настройками и ярлыками »

Раз уж выносить плагины отдельной опцией, то можно ещё и визуализации вынести, как вариант развития скрипта.

Комсомолец 21-10-2008 05:32 929149

hb860, можно и визуализации вынести)) только вот как с дефолтными быть, которые в обязательном порядке ставятся (скины и визуализации)?

hb860 21-10-2008 09:08 929213

Так я для этого и наплодил папок!!! C:\aimp\player - Это то что по делфолту! А ты начал на папки бочку катить :) Это правильный способ

Комсомолец 21-10-2008 12:58 929450

hb860, ничего я не катил. Просто неудобно мне так :)
Вот пример. Помогай оптимизировать.
Скрипт

Код:

;Text/Registry definitions
!define PRODUCT_NAME "AIMP2"
!define PRODUCT_VERSION "2.5.0.306"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define BRANDING "By hb860"

;icons indexes definition
!define idxWAV 0
!define idxMP3 1
!define idxOGG 2
!define idxWMA 3
!define idxAUDIO 4
!define idxMOD 5
!define idxFLAC 6
!define idxMPC 7
!define idxSKIN 8
!define idxPLAYLIST 9

; MUI 1.67 compatible ------
!include "MUI.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\aimp.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue-full.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"

;service macroses
!insertmacro GetOptions
!insertmacro RefreshShellIcons

;Common directives
BrandingText "${BRANDING}"
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"
InstallDir "$PROGRAMFILES\AIMP2"
ShowInstDetails show
ShowUninstDetails show

;installation types
InstType "Полная"
InstType "Сокращенная"
InstType "Минимальная"

;variables section
Var SkinFile
Var IconFile
Var IconFileName
Var OpenCommand
Var ProfilePath
Var MultiUser
Var MultiUserCmdValue

;custom filetype registration function
!macro RegisterExtension extenstion /*ContentType PerceivedType*/ ClassName ClassStrDefault IconIndex
  WriteRegStr HKCR "${extenstion}" "" "${ClassName}"
  ;WriteRegStr HKCR "${extenstion}" "PerceivedType" "${PerceivedType}"
  ;WriteRegStr HKCR "${extenstion}" "Content Type" "${ContentType}"
 
  WriteRegStr HKCR "${ClassName}" "" "${ClassStrDefault}"
  WriteRegStr HKCR "${ClassName}\CLSID" "" "{0041494D-5032-4472-6F70-546172676574}"
  WriteRegStr HKCR "${ClassName}\DefaultIcon" "" "$IconFile,${IconIndex}"
  WriteRegStr HKLM "${ClassName}\shell\open" "" "Открыть в AIMP2"
  WriteRegStr HKCR "${ClassName}\shell\open\command" "" "$OpenCommand"
  WriteRegStr HKCR "${ClassName}\shell\open\DropTarget" "CLSID" "{0041494D-5032-4472-6F70-546172676574}"
!macroend



;sections
Section "!${PRODUCT_NAME}"
  SectionIn 1 2 3 RO
  StrCpy $ProfilePath "$INSTDIR\Data\Profile"
  SetOutPath "$INSTDIR\"
  File /r "C:\AIMP2\*.*"
        WriteUninstaller "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\aimp2.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SectionEnd

Section /o "Отдельные настройки на каждого пользователя"
        SectionIn 1
        ;Very important be sure what SetShellVarContext has CURRENT value here
        StrCpy $MultiUser 1
SectionEnd

;=========================================================================================================================
SectionGroup /e "Дополнения"
       
        Section "Скины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Skins"
        ;        File "C:\AIMP2\Skins\*.*"
        SectionEnd

        Section "Иконки типов файлов"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Icons"
        ;        File "C:\AIMP2\Icons\*.*"
        SectionEnd

        Section "Плагины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\PlugIns"
        ;        File "C:\AIMP2\PlugIns\*.*"
        SectionEnd
SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ярлыки"

        Section "В меню Пуск"
                SectionIn 1 2 3
                SetShellVarContext all
                CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Advanced Tag Editor.lnk" "$INSTDIR\AIMP2t.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Converter.lnk" "$INSTDIR\AIMP2c.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Recorder.lnk" "$INSTDIR\AIMP2r.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
        SectionEnd

        Section "На рабочем столе"
                SectionIn 1
                IfSilent +3
                SetShellVarContext all
                CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        SectionEnd

        Section "В панели быстрого запуска"
                SectionIn 1 2
                SetShellVarContext all
                CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        SectionEnd

SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ассоциации файлов"
        Section "-GetIconsDll"
                SectionIn 1 2 3
                ${GetOptions} $CMDLINE "/ICONS=" $IconFileName
                StrCmp $IconFileName "" EmptyIconFile
                IfFileExists "$INSTDIR\Icons\$IconFileName" EndSection IconFileNotExists
                       
                IconFileNotExists:
                        StrCpy $IconFileName ""
                EmptyIconFile:
                        StrCpy $IconFileName "aimp2.dll"
                EndSection:
                        StrCpy $IconFile "$INSTDIR\Icons\$IconFileName"
                        StrCpy $OpenCommand "$INSTDIR\AIMP2.exe $\"%1$\""
        SectionEnd
       
        Section "Контекстое меню проводника"
                SectionIn 1 2
                RegDLL  "$INSTDIR\System\aimp_shell.dll"
        SectionEnd
       
        Section "AAC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aac" "AIMP.AAC" "AIMP2: AAC" ${idxAUDIO}
        SectionEnd
       
        Section "ACS2"
                SectionIn 1 2
                !insertmacro RegisterExtension ".acs2" "AIMP.ACS2" "AIMP2: ACS2" ${idxSKIN}
        SectionEnd
       
        Section "AIF"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aif" "AIMP.AIF" "AIMP2: AIF" ${idxAUDIO}
        SectionEnd       
       
        Section "AIFF"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aiff" "AIMP.AIFF" "AIMP2: AIFF" ${idxAUDIO}
        SectionEnd               
       
        Section "APE"
                SectionIn 1 2
                !insertmacro RegisterExtension ".ape" "AIMP.APE" "AIMP2: APE" ${idxAUDIO}
        SectionEnd       

        Section "AUDIOCD"
                SectionIn 1 2 3
                !insertmacro RegisterExtension "AudioCD" "AIMP.AUDIOCD" "AIMP2: AUDIOCD" ${idxAUDIO}
        SectionEnd               
       
        Section "CDA"
                SectionIn 1 2
                !insertmacro RegisterExtension ".cda" "AIMP.CDA" "AIMP2: CDA" ${idxAUDIO}
        SectionEnd               

        Section "CUE"
                SectionIn 1 2
                !insertmacro RegisterExtension ".cue" "AIMP.CUE" "AIMP2: CUE" ${idxPLAYLIST}
        SectionEnd

        Section "FLAC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".flac" "AIMP.FLAC" "AIMP2: FLAC" ${idxFLAC}
        SectionEnd       

        Section "IT"
                SectionIn 1 2
                !insertmacro RegisterExtension ".it" "AIMP.IT" "AIMP2: IT" ${idxMOD}
        SectionEnd
       
        Section "M3U"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".m3u" "AIMP.M3U" "AIMP2: M3U" ${idxPLAYLIST}
        SectionEnd       
       
        Section "M3U8"
                SectionIn 1 2
                !insertmacro RegisterExtension ".m3u8" "AIMP.M3U8" "AIMP2: M3U8" ${idxPLAYLIST}
        SectionEnd       
       
        Section "MID"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mid" "AIMP.MID" "AIMP2: MID" ${idxAUDIO}
        SectionEnd       

        Section "MO3"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mo3" "AIMP.MO3" "AIMP2: MO3" ${idxMOD}
        SectionEnd       
       
        Section "MOD"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mod" "AIMP.MOD" "AIMP2: MOD" ${idxMOD}
        SectionEnd       

        Section "MP1"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mp1" "AIMP.MP1" "AIMP2: MP1" ${idxMP3}
        SectionEnd

        Section "MP2"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mp2" "AIMP.MP2" "AIMP2: MP2" ${idxMP3}
        SectionEnd       

        Section "MP3"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".mp3" "AIMP.MP3" "AIMP2: MP3" ${idxMP3}
        SectionEnd               

        Section "MPC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mpc" "AIMP.MPC" "AIMP2: MPC" ${idxMPC}
        SectionEnd

        Section "MTM"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mtm" "AIMP.MTM" "AIMP2: MTM" ${idxMOD}
        SectionEnd

        Section "OGG"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".ogg" "AIMP.OGG" "AIMP2: OGG" ${idxOGG}
        SectionEnd

        Section "PLC"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".plc" "AIMP.PLC" "AIMP2: PLC" ${idxPLAYLIST}
        SectionEnd

        Section "PLS"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".pls" "AIMP.PLS" "AIMP2: PLS" ${idxPLAYLIST}
        SectionEnd

        Section "S3M"
                SectionIn 1 2
                !insertmacro RegisterExtension ".s3m" "AIMP.S3M" "AIMP2: S3M" ${idxMOD}
        SectionEnd

        Section "UMX"
                SectionIn 1 2
                !insertmacro RegisterExtension ".umx" "AIMP.UMX" "AIMP2: UMX" ${idxMOD}
        SectionEnd       
       
        Section "WAV"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".wav" "AIMP.WAV" "AIMP2: WAV" ${idxWAV}
        SectionEnd       
       
        Section "WMA"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".wma" "AIMP.WMA" "AIMP2: WMA" ${idxWMA}
        SectionEnd       

        Section "WV"
                SectionIn 1 2
                !insertmacro RegisterExtension ".wv" "AIMP.WV" "AIMP2: WV" ${idxAUDIO}
        SectionEnd
       
        Section "XM"
                SectionIn 1 2
                !insertmacro RegisterExtension ".xm" "AIMP.XM" "AIMP2: XM" ${idxMOD}
        SectionEnd       
        Section "-RefreshIcons"
                SectionIn 1 2 3
                ${RefreshShellIcons}
        SectionEnd
SectionGroupEnd       
;=========================================================================================================================
Section "-PostinstallProfileProcessing"
        ;here we must set current user constats context
        SetShellVarContext current

        ;common INI settings
        CreateDirectory "$INSTDIR\DATA"
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System DefaultLang russian.lng
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System Version 2500
       
        ${GetOptions} $CMDLINE "/MULTIUSER=" $MultiUserCmdValue
        StrCmp $MultiUserCmdValue "" +2
        StrCpy $MultiUser $MultiUserCmdValue
       
        StrCmp $MultiUser 1 PerUserCFG OneUserCFG
       
        PerUserCFG:
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 1
                StrCpy $ProfilePath "$APPDATA\AIMP"
                CreateDirectory "$ProfilePath"
                Goto WriteCFG
        OneUserCFG:       
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 0
                CreateDirectory "$INSTDIR\DATA\Profile"
                Goto WriteCFG
        WriteCFG:
                SetOutPath "$ProfilePath"
        ;        File /nonfatal /r "c:\Aimp2\DATA\Profile\"
               
                IfFileExists "$ProfilePath\AIMP2.INI" EndSection
                WriteINIStr "$ProfilePath\AIMP2.INI" System LangFile russian.lng ;язык по умолчанию для плеера
                WriteINIStr "$ProfilePath\AIMP2r.INI" System LangFile russian.lng ;язык по умолчанию для рекордера
                WriteINIStr "$ProfilePath\AIMP2c.INI" System LangFile russian.lng ;язык по умолчанию для конвертера
                WriteINIStr "$ProfilePath\AIMP2t.INI" System LangFile russian.lng ;язык по умолчанию для таггера       
        EndSection:       
                ${GetOptions} $CMDLINE "/SKIN=" $SkinFile
                StrCmp $SkinFile "" +2
                WriteINIStr "$ProfilePath\AIMP2.INI" Skins DefaultSkin $SkinFile        ;скин               
                WriteINIStr "$ProfilePath\AIMP2.INI" Skins ICL $IconFileName        ;скин
SectionEnd

Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "Удаление программы $(^Name) было успешно завершено."
FunctionEnd

Function un.onInit
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы уверены в том, что желаете удалить $(^Name) и все компоненты программы?" IDYES +2
  Abort
FunctionEnd

Section Uninstall
  UnRegDLL "$INSTDIR\System\aimp_shell.dll"
  ExecWait '$INSTDIR\aimp2.exe /REG=U'
  RMDir /r "$INSTDIR\"
  SetShellVarContext all
  RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
  Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
  Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  SetAutoClose true
SectionEnd


Кстати, ${BRANDING} где вообще должен отображаться? Ни разу не увидел.

Цитата:

Цитата hb860
можно ещё и визуализации вынести »

Как? Они же в одной папке с плагинами.

P.S.-нафига тебе юзербар? ;)

Комсомолец 21-10-2008 14:10 929513

Цитата:

Цитата hb860
Положите в c:\Aimp\Player оригинальный набор файлов программы. »

что-то хрень получилась. плеер в Player, все остальное отдельно в папках рядом с папкой плеер. Т.е. папки дублируются. Как то некрасиво.

Imago_ 21-10-2008 16:11 929648

Комсомолец, все правильно - оригинальные файлы - в одной директории; дополнения, настройки и просто нужности - в других. ИМХО - удобно.

hb860 21-10-2008 16:16 929655

${BRANDING} отображается под "Требуется места на диске" и в деинсталяторе. Смори скрины - там есть By Happy Bulldozer860

По поводу скрипта: чё там оптимизировать ? Он возьмёт всё из папки c:\aimp, включая подпапки, Выбор компонентов не будет работать.

Цитата:

Цитата Imago_
ИМХО - удобно. »

И мне. Чё тут может быть неудобного, мне не понятно.

Цитата:

Цитата Комсомолец
P.S.-нафига тебе юзербар? »

ХОЧУ :)

Комсомолец 21-10-2008 17:25 929724

hb860, посмотри
этот
Код:

;Text/Registry definitions
!define PRODUCT_NAME "AIMP2"
!define PRODUCT_VERSION "2.5.0.306"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define BRANDING "(с)2008"

;icons indexes definition
!define idxWAV 0
!define idxMP3 1
!define idxOGG 2
!define idxWMA 3
!define idxAUDIO 4
!define idxMOD 5
!define idxFLAC 6
!define idxMPC 7
!define idxSKIN 8
!define idxPLAYLIST 9

; MUI 1.67 compatible ------
!include "MUI.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\aimp.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue-full.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"

;service macroses
!insertmacro GetOptions
!insertmacro RefreshShellIcons

;Common directives
BrandingText "${BRANDING}"
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}_PowerPack.exe"
InstallDir "$PROGRAMFILES\AIMP2"
ShowInstDetails show
ShowUninstDetails show

;installation types
InstType "Полная"
InstType "Сокращенная"
InstType "Минимальная"

;variables section
Var SkinFile
Var IconFile
Var IconFileName
Var OpenCommand
Var ProfilePath
Var MultiUser
Var MultiUserCmdValue

;custom filetype registration function
!macro RegisterExtension extenstion /*ContentType PerceivedType*/ ClassName ClassStrDefault IconIndex
  WriteRegStr HKCR "${extenstion}" "" "${ClassName}"
  ;WriteRegStr HKCR "${extenstion}" "PerceivedType" "${PerceivedType}"
  ;WriteRegStr HKCR "${extenstion}" "Content Type" "${ContentType}"
 
  WriteRegStr HKCR "${ClassName}" "" "${ClassStrDefault}"
  WriteRegStr HKCR "${ClassName}\CLSID" "" "{0041494D-5032-4472-6F70-546172676574}"
  WriteRegStr HKCR "${ClassName}\DefaultIcon" "" "$IconFile,${IconIndex}"
  WriteRegStr HKLM "${ClassName}\shell\open" "" "Открыть в AIMP2"
  WriteRegStr HKCR "${ClassName}\shell\open\command" "" "$OpenCommand"
  WriteRegStr HKCR "${ClassName}\shell\open\DropTarget" "CLSID" "{0041494D-5032-4472-6F70-546172676574}"
!macroend



;sections
Section "!${PRODUCT_NAME}"
  SectionIn 1 2 3 RO
  StrCpy $ProfilePath "$INSTDIR\Data\Profile"
  SetOutPath "$INSTDIR\"
  File /r "C:\AIMP2\Player*.*"
        WriteUninstaller "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\aimp2.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SectionEnd

Section /o "Отдельные настройки на каждого пользователя"
        SectionIn 1
        ;Very important be sure what SetShellVarContext has CURRENT value here
        StrCpy $MultiUser 1
SectionEnd

;=========================================================================================================================
SectionGroup /e "Дополнения"
       
        Section "Скины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Skins"
                File "C:\AIMP2\Skins\*.*"
        SectionEnd

        Section "Иконки типов файлов"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Icons"
                File "C:\AIMP2\Icons\*.*"
        SectionEnd

        Section "Плагины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\PlugIns"
                File "C:\AIMP2\PlugIns\*.*"
        SectionEnd

        Section "Визуализации"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Visual"
                File "C:\AIMP2\Visual\*.*"
        SectionEnd

SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ярлыки"

        Section "В меню Пуск"
                SectionIn 1 2 3
                SetShellVarContext all
                CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Advanced Tag Editor.lnk" "$INSTDIR\AIMP2t.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Converter.lnk" "$INSTDIR\AIMP2c.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Recorder.lnk" "$INSTDIR\AIMP2r.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
        SectionEnd

        Section "На рабочем столе"
                SectionIn 1
                IfSilent +3
                SetShellVarContext all
                CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        SectionEnd

        Section "В панели быстрого запуска"
                SectionIn 1 2
                SetShellVarContext all
                CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        SectionEnd

SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ассоциации файлов"
        Section "-GetIconsDll"
                SectionIn 1 2 3
                ${GetOptions} $CMDLINE "/ICONS=" $IconFileName
                StrCmp $IconFileName "" EmptyIconFile
                IfFileExists "$INSTDIR\Icons\$IconFileName" EndSection IconFileNotExists
                       
                IconFileNotExists:
                        StrCpy $IconFileName ""
                EmptyIconFile:
                        StrCpy $IconFileName "aimp2.dll"
                EndSection:
                        StrCpy $IconFile "$INSTDIR\Icons\$IconFileName"
                        StrCpy $OpenCommand "$INSTDIR\AIMP2.exe $\"%1$\""
        SectionEnd
       
        Section "Контекстое меню проводника"
                SectionIn 1 2
                RegDLL  "$INSTDIR\System\aimp_shell.dll"
        SectionEnd
       
        Section "AAC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aac" "AIMP.AAC" "AIMP2: AAC" ${idxAUDIO}
        SectionEnd
       
        Section "ACS2"
                SectionIn 1 2
                !insertmacro RegisterExtension ".acs2" "AIMP.ACS2" "AIMP2: ACS2" ${idxSKIN}
        SectionEnd
       
        Section "AIF"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aif" "AIMP.AIF" "AIMP2: AIF" ${idxAUDIO}
        SectionEnd       
       
        Section "AIFF"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aiff" "AIMP.AIFF" "AIMP2: AIFF" ${idxAUDIO}
        SectionEnd               
       
        Section "APE"
                SectionIn 1 2
                !insertmacro RegisterExtension ".ape" "AIMP.APE" "AIMP2: APE" ${idxAUDIO}
        SectionEnd       

        Section "AUDIOCD"
                SectionIn 1 2 3
                !insertmacro RegisterExtension "AudioCD" "AIMP.AUDIOCD" "AIMP2: AUDIOCD" ${idxAUDIO}
        SectionEnd               
       
        Section "CDA"
                SectionIn 1 2
                !insertmacro RegisterExtension ".cda" "AIMP.CDA" "AIMP2: CDA" ${idxAUDIO}
        SectionEnd               

        Section "CUE"
                SectionIn 1 2
                !insertmacro RegisterExtension ".cue" "AIMP.CUE" "AIMP2: CUE" ${idxPLAYLIST}
        SectionEnd

        Section "FLAC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".flac" "AIMP.FLAC" "AIMP2: FLAC" ${idxFLAC}
        SectionEnd       

        Section "IT"
                SectionIn 1 2
                !insertmacro RegisterExtension ".it" "AIMP.IT" "AIMP2: IT" ${idxMOD}
        SectionEnd
       
        Section "M3U"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".m3u" "AIMP.M3U" "AIMP2: M3U" ${idxPLAYLIST}
        SectionEnd       
       
        Section "M3U8"
                SectionIn 1 2
                !insertmacro RegisterExtension ".m3u8" "AIMP.M3U8" "AIMP2: M3U8" ${idxPLAYLIST}
        SectionEnd       
       
        Section "MID"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mid" "AIMP.MID" "AIMP2: MID" ${idxAUDIO}
        SectionEnd       

        Section "MO3"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mo3" "AIMP.MO3" "AIMP2: MO3" ${idxMOD}
        SectionEnd       
       
        Section "MOD"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mod" "AIMP.MOD" "AIMP2: MOD" ${idxMOD}
        SectionEnd       

        Section "MP1"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mp1" "AIMP.MP1" "AIMP2: MP1" ${idxMP3}
        SectionEnd

        Section "MP2"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mp2" "AIMP.MP2" "AIMP2: MP2" ${idxMP3}
        SectionEnd       

        Section "MP3"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".mp3" "AIMP.MP3" "AIMP2: MP3" ${idxMP3}
        SectionEnd               

        Section "MPC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mpc" "AIMP.MPC" "AIMP2: MPC" ${idxMPC}
        SectionEnd

        Section "MTM"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mtm" "AIMP.MTM" "AIMP2: MTM" ${idxMOD}
        SectionEnd

        Section "OGG"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".ogg" "AIMP.OGG" "AIMP2: OGG" ${idxOGG}
        SectionEnd

        Section "PLC"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".plc" "AIMP.PLC" "AIMP2: PLC" ${idxPLAYLIST}
        SectionEnd

        Section "PLS"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".pls" "AIMP.PLS" "AIMP2: PLS" ${idxPLAYLIST}
        SectionEnd

        Section "S3M"
                SectionIn 1 2
                !insertmacro RegisterExtension ".s3m" "AIMP.S3M" "AIMP2: S3M" ${idxMOD}
        SectionEnd

        Section "UMX"
                SectionIn 1 2
                !insertmacro RegisterExtension ".umx" "AIMP.UMX" "AIMP2: UMX" ${idxMOD}
        SectionEnd       
       
        Section "WAV"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".wav" "AIMP.WAV" "AIMP2: WAV" ${idxWAV}
        SectionEnd       
       
        Section "WMA"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".wma" "AIMP.WMA" "AIMP2: WMA" ${idxWMA}
        SectionEnd       

        Section "WV"
                SectionIn 1 2
                !insertmacro RegisterExtension ".wv" "AIMP.WV" "AIMP2: WV" ${idxAUDIO}
        SectionEnd
       
        Section "XM"
                SectionIn 1 2
                !insertmacro RegisterExtension ".xm" "AIMP.XM" "AIMP2: XM" ${idxMOD}
        SectionEnd       
        Section "-RefreshIcons"
                SectionIn 1 2 3
                ${RefreshShellIcons}
        SectionEnd
SectionGroupEnd       
;=========================================================================================================================
Section "-PostinstallProfileProcessing"
        ;here we must set current user constats context
        SetShellVarContext current

        ;common INI settings
        CreateDirectory "$INSTDIR\DATA"
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System DefaultLang russian.lng
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System Version 2500
       
        ${GetOptions} $CMDLINE "/MULTIUSER=" $MultiUserCmdValue
        StrCmp $MultiUserCmdValue "" +2
        StrCpy $MultiUser $MultiUserCmdValue
       
        StrCmp $MultiUser 1 PerUserCFG OneUserCFG
       
        PerUserCFG:
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 1
                StrCpy $ProfilePath "$APPDATA\AIMP"
                CreateDirectory "$ProfilePath"
                Goto WriteCFG
        OneUserCFG:       
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 0
                CreateDirectory "$INSTDIR\DATA\Profile"
                Goto WriteCFG
        WriteCFG:
                SetOutPath "$ProfilePath"
                File /nonfatal /r "c:\Aimp2\DATA\Profile\"
               
                IfFileExists "$ProfilePath\AIMP2.INI" EndSection
                WriteINIStr "$ProfilePath\AIMP2.INI" System LangFile russian.lng ;язык по умолчанию для плеера
                WriteINIStr "$ProfilePath\AIMP2r.INI" System LangFile russian.lng ;язык по умолчанию для рекордера
                WriteINIStr "$ProfilePath\AIMP2c.INI" System LangFile russian.lng ;язык по умолчанию для конвертера
                WriteINIStr "$ProfilePath\AIMP2t.INI" System LangFile russian.lng ;язык по умолчанию для таггера       
        EndSection:       
                ${GetOptions} $CMDLINE "/SKIN=" $SkinFile
                StrCmp $SkinFile "" +2
                WriteINIStr "$ProfilePath\AIMP2.INI" Skins DefaultSkin $SkinFile        ;скин               
                WriteINIStr "$ProfilePath\AIMP2.INI" Skins ICL $IconFileName        ;скин
SectionEnd

Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "Удаление программы $(^Name) было успешно завершено."
FunctionEnd

Function un.onInit
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы уверены в том, что желаете удалить $(^Name) и все компоненты программы?" IDYES +2
  Abort
FunctionEnd

Section Uninstall
  UnRegDLL "$INSTDIR\System\aimp_shell.dll"
  ExecWait '$INSTDIR\aimp2.exe /REG=U'
  RMDir /r "$INSTDIR\"
  SetShellVarContext all
  RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
  Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
  Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  SetAutoClose true
SectionEnd

скрипт.
Тебя хотел попросить с удалением компонентов помочь (плагины, визуализации, скины). Ещё не разобрался с этим.

Комсомолец 21-10-2008 18:02 929764

hb860, еще вопросик-чего у тебя инсталлятор какой-то жёлтый? :o

hb860 21-10-2008 18:14 929782

Цитата:

Цитата Комсомолец
hb860, еще вопросик-чего у тебя инсталлятор какой-то жёлтый? »

Тема оформления такая. Disney it's a Mgical World :)

По скрипту: команду
Цитата:

Цитата Комсомолец
File /r "C:\AIMP2\Player*.*" »

иправь на C:\AIMP2\Player\*.* и всё :)

Цитата:

Цитата Комсомолец
Тебя хотел попросить с удалением компонентов помочь (плагины, визуализации, скины). Ещё не разобрался с этим. »

Поподробней

Комсомолец 21-10-2008 18:27 929797

hb860, сейчас протестил. настройки не подхватились, скинов и визуалов нет, плагинов тоже. Только дефолтный оригинальный набор. Придется дорабатывать. Или отказаться, что не гуд.
читать дальше »
Код:

;Text/Registry definitions
!define PRODUCT_NAME "AIMP2"
!define PRODUCT_VERSION "2.5.0.306"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define BRANDING "(с)2008"

;icons indexes definition
!define idxWAV 0
!define idxMP3 1
!define idxOGG 2
!define idxWMA 3
!define idxAUDIO 4
!define idxMOD 5
!define idxFLAC 6
!define idxMPC 7
!define idxSKIN 8
!define idxPLAYLIST 9

; MUI 1.67 compatible ------
!include "MUI.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\aimp.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue-full.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"

;service macroses
!insertmacro GetOptions
!insertmacro RefreshShellIcons

;Common directives
BrandingText "${BRANDING}"
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}_PowerPack.exe"
InstallDir "$PROGRAMFILES\AIMP2"
ShowInstDetails show
ShowUninstDetails show

;installation types
InstType "Полная"
InstType "Сокращенная"
InstType "Минимальная"

;variables section
Var SkinFile
Var IconFile
Var IconFileName
Var OpenCommand
Var ProfilePath
Var MultiUser
Var MultiUserCmdValue

;custom filetype registration function
!macro RegisterExtension extenstion /*ContentType PerceivedType*/ ClassName ClassStrDefault IconIndex
  WriteRegStr HKCR "${extenstion}" "" "${ClassName}"
  ;WriteRegStr HKCR "${extenstion}" "PerceivedType" "${PerceivedType}"
  ;WriteRegStr HKCR "${extenstion}" "Content Type" "${ContentType}"
 
  WriteRegStr HKCR "${ClassName}" "" "${ClassStrDefault}"
  WriteRegStr HKCR "${ClassName}\CLSID" "" "{0041494D-5032-4472-6F70-546172676574}"
  WriteRegStr HKCR "${ClassName}\DefaultIcon" "" "$IconFile,${IconIndex}"
  WriteRegStr HKLM "${ClassName}\shell\open" "" "Открыть в AIMP2"
  WriteRegStr HKCR "${ClassName}\shell\open\command" "" "$OpenCommand"
  WriteRegStr HKCR "${ClassName}\shell\open\DropTarget" "CLSID" "{0041494D-5032-4472-6F70-546172676574}"
!macroend



;sections
Section "!${PRODUCT_NAME}"
  SectionIn 1 2 3 RO
  StrCpy $ProfilePath "$INSTDIR\Data\Profile"
  SetOutPath "$INSTDIR\"
  File /r "C:\AIMP2\Player\*.*"
        WriteUninstaller "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\aimp2.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SectionEnd

Section /o "Отдельные настройки на каждого пользователя"
        SectionIn 1
        ;Very important be sure what SetShellVarContext has CURRENT value here
        StrCpy $MultiUser 1
SectionEnd

;=========================================================================================================================
SectionGroup /e "Дополнения"
       
        Section "Скины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Skins"
                File "C:\AIMP2\Skins\*.*"
        SectionEnd

        Section "Иконки типов файлов"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Icons"
                File "C:\AIMP2\Icons\*.*"
        SectionEnd

        Section "Плагины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\PlugIns"
                File "C:\AIMP2\PlugIns\*.*"
        SectionEnd

        Section "Визуализации"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Visual"
                File "C:\AIMP2\Visual\*.*"
        SectionEnd

SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ярлыки"

        Section "В меню Пуск"
                SectionIn 1 2 3
                SetShellVarContext all
                CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\Player\aimp2.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Advanced Tag Editor.lnk" "$INSTDIR\Player\AIMP2t.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Converter.lnk" "$INSTDIR\Player\AIMP2c.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Recorder.lnk" "$INSTDIR\Player\AIMP2r.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
        SectionEnd

        Section "На рабочем столе"
                SectionIn 1
                IfSilent +3
                SetShellVarContext all
                CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\Player\aimp2.exe"
        SectionEnd

        Section "В панели быстрого запуска"
                SectionIn 1 2
                SetShellVarContext all
                CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\Player\aimp2.exe"
        SectionEnd

SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ассоциации файлов"
        Section "-GetIconsDll"
                SectionIn 1 2 3
                ${GetOptions} $CMDLINE "/ICONS=" $IconFileName
                StrCmp $IconFileName "" EmptyIconFile
                IfFileExists "$INSTDIR\Icons\$IconFileName" EndSection IconFileNotExists
                       
                IconFileNotExists:
                        StrCpy $IconFileName ""
                EmptyIconFile:
                        StrCpy $IconFileName "aimp2.dll"
                EndSection:
                        StrCpy $IconFile "$INSTDIR\Icons\$IconFileName"
                        StrCpy $OpenCommand "$INSTDIR\Player\AIMP2.exe $\"%1$\""
        SectionEnd
       
        Section "Контекстое меню проводника"
                SectionIn 1 2
                RegDLL  "$INSTDIR\Player\System\aimp_shell.dll"
        SectionEnd
       
        Section "AAC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aac" "AIMP.AAC" "AIMP2: AAC" ${idxAUDIO}
        SectionEnd
       
        Section "ACS2"
                SectionIn 1 2
                !insertmacro RegisterExtension ".acs2" "AIMP.ACS2" "AIMP2: ACS2" ${idxSKIN}
        SectionEnd
       
        Section "AIF"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aif" "AIMP.AIF" "AIMP2: AIF" ${idxAUDIO}
        SectionEnd       
       
        Section "AIFF"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aiff" "AIMP.AIFF" "AIMP2: AIFF" ${idxAUDIO}
        SectionEnd               
       
        Section "APE"
                SectionIn 1 2
                !insertmacro RegisterExtension ".ape" "AIMP.APE" "AIMP2: APE" ${idxAUDIO}
        SectionEnd       

        Section "AUDIOCD"
                SectionIn 1 2 3
                !insertmacro RegisterExtension "AudioCD" "AIMP.AUDIOCD" "AIMP2: AUDIOCD" ${idxAUDIO}
        SectionEnd               
       
        Section "CDA"
                SectionIn 1 2
                !insertmacro RegisterExtension ".cda" "AIMP.CDA" "AIMP2: CDA" ${idxAUDIO}
        SectionEnd               

        Section "CUE"
                SectionIn 1 2
                !insertmacro RegisterExtension ".cue" "AIMP.CUE" "AIMP2: CUE" ${idxPLAYLIST}
        SectionEnd

        Section "FLAC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".flac" "AIMP.FLAC" "AIMP2: FLAC" ${idxFLAC}
        SectionEnd       

        Section "IT"
                SectionIn 1 2
                !insertmacro RegisterExtension ".it" "AIMP.IT" "AIMP2: IT" ${idxMOD}
        SectionEnd
       
        Section "M3U"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".m3u" "AIMP.M3U" "AIMP2: M3U" ${idxPLAYLIST}
        SectionEnd       
       
        Section "M3U8"
                SectionIn 1 2
                !insertmacro RegisterExtension ".m3u8" "AIMP.M3U8" "AIMP2: M3U8" ${idxPLAYLIST}
        SectionEnd       
       
        Section "MID"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mid" "AIMP.MID" "AIMP2: MID" ${idxAUDIO}
        SectionEnd       

        Section "MO3"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mo3" "AIMP.MO3" "AIMP2: MO3" ${idxMOD}
        SectionEnd       
       
        Section "MOD"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mod" "AIMP.MOD" "AIMP2: MOD" ${idxMOD}
        SectionEnd       

        Section "MP1"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mp1" "AIMP.MP1" "AIMP2: MP1" ${idxMP3}
        SectionEnd

        Section "MP2"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mp2" "AIMP.MP2" "AIMP2: MP2" ${idxMP3}
        SectionEnd       

        Section "MP3"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".mp3" "AIMP.MP3" "AIMP2: MP3" ${idxMP3}
        SectionEnd               

        Section "MPC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mpc" "AIMP.MPC" "AIMP2: MPC" ${idxMPC}
        SectionEnd

        Section "MTM"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mtm" "AIMP.MTM" "AIMP2: MTM" ${idxMOD}
        SectionEnd

        Section "OGG"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".ogg" "AIMP.OGG" "AIMP2: OGG" ${idxOGG}
        SectionEnd

        Section "PLC"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".plc" "AIMP.PLC" "AIMP2: PLC" ${idxPLAYLIST}
        SectionEnd

        Section "PLS"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".pls" "AIMP.PLS" "AIMP2: PLS" ${idxPLAYLIST}
        SectionEnd

        Section "S3M"
                SectionIn 1 2
                !insertmacro RegisterExtension ".s3m" "AIMP.S3M" "AIMP2: S3M" ${idxMOD}
        SectionEnd

        Section "UMX"
                SectionIn 1 2
                !insertmacro RegisterExtension ".umx" "AIMP.UMX" "AIMP2: UMX" ${idxMOD}
        SectionEnd       
       
        Section "WAV"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".wav" "AIMP.WAV" "AIMP2: WAV" ${idxWAV}
        SectionEnd       
       
        Section "WMA"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".wma" "AIMP.WMA" "AIMP2: WMA" ${idxWMA}
        SectionEnd       

        Section "WV"
                SectionIn 1 2
                !insertmacro RegisterExtension ".wv" "AIMP.WV" "AIMP2: WV" ${idxAUDIO}
        SectionEnd
       
        Section "XM"
                SectionIn 1 2
                !insertmacro RegisterExtension ".xm" "AIMP.XM" "AIMP2: XM" ${idxMOD}
        SectionEnd       
        Section "-RefreshIcons"
                SectionIn 1 2 3
                ${RefreshShellIcons}
        SectionEnd
SectionGroupEnd       
;=========================================================================================================================
Section "-PostinstallProfileProcessing"
        ;here we must set current user constats context
        SetShellVarContext current

        ;common INI settings
        CreateDirectory "$INSTDIR\DATA"
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System DefaultLang russian.lng
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System Version 2500
       
        ${GetOptions} $CMDLINE "/MULTIUSER=" $MultiUserCmdValue
        StrCmp $MultiUserCmdValue "" +2
        StrCpy $MultiUser $MultiUserCmdValue
       
        StrCmp $MultiUser 1 PerUserCFG OneUserCFG
       
        PerUserCFG:
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 1
                StrCpy $ProfilePath "$APPDATA\AIMP"
                CreateDirectory "$ProfilePath"
                Goto WriteCFG
        OneUserCFG:       
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 0
                CreateDirectory "$INSTDIR\DATA\Profile"
                Goto WriteCFG
        WriteCFG:
                SetOutPath "$ProfilePath"
                File /nonfatal /r "c:\Aimp2\DATA\Profile\"
               
                IfFileExists "$ProfilePath\AIMP2.INI" EndSection
                WriteINIStr "$ProfilePath\AIMP2.INI" System LangFile russian.lng ;язык по умолчанию для плеера
                WriteINIStr "$ProfilePath\AIMP2r.INI" System LangFile russian.lng ;язык по умолчанию для рекордера
                WriteINIStr "$ProfilePath\AIMP2c.INI" System LangFile russian.lng ;язык по умолчанию для конвертера
                WriteINIStr "$ProfilePath\AIMP2t.INI" System LangFile russian.lng ;язык по умолчанию для таггера       
        EndSection:       
                ${GetOptions} $CMDLINE "/SKIN=" $SkinFile
                StrCmp $SkinFile "" +2
                WriteINIStr "$ProfilePath\AIMP2.INI" Skins DefaultSkin $SkinFile        ;скин               
                WriteINIStr "$ProfilePath\AIMP2.INI" Skins ICL $IconFileName        ;скин
SectionEnd

Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "Удаление программы $(^Name) было успешно завершено."
FunctionEnd

Function un.onInit
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы уверены в том, что желаете удалить $(^Name) и все компоненты программы?" IDYES +2
  Abort
FunctionEnd

Section Uninstall
  UnRegDLL "$INSTDIR\System\aimp_shell.dll"
  ExecWait '$INSTDIR\aimp2.exe /REG=U'
  RMDir /r "$INSTDIR\"
  SetShellVarContext all
  RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
  Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
  Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  SetAutoClose true
SectionEnd



У тебя как?

hb860, чтобы
Код:

SectionGroup /e "Дополнения"
       
        Section "Скины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Skins"
                File "C:\AIMP2\Skins\*.*"
        SectionEnd

        Section "Иконки типов файлов"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Icons"
                File "C:\AIMP2\Icons\*.*"
        SectionEnd

        Section "Плагины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\PlugIns"
                File "C:\AIMP2\PlugIns\*.*"
        SectionEnd

        Section "Визуализации"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Visual"
                File "C:\AIMP2\Visual\*.*"
        SectionEnd

SectionGroupEnd

эти пункты можно было отдельно удалять.

hb860 21-10-2008 18:50 929819

Цитата:

Цитата Комсомолец
SetOutPath "$INSTDIR\Visual" »

А это что ? насколько помню AIMP2 визуализацию в папке Plugins хранит.

Хватит уродовать мой код! :)
Код:

File /nonfatal /r "c:\Aimp2\DATA\Profile\"
- это убери и верни всё как было!

Положи настройки в
Код:

"c:\Aimp2\Profile\"
и скопируй туда
Цитата:

Необязательно. В папку c:\Aimp\profile положите содежимое папки %programfiles%\aimp\data\profile(если у Вас "однопользовательский" режим использования программы, в противном случае положите туда содержимое %APPDATA%\AIMP)
Я не знаю что ты там именно пихаешь в c:\Aimp2\DATA\Profile\
Скины должны были подхватится и в твоей "модифицированной" версии скрипта, если ты их положил конечно в c:\aimp2\skins.

По поводу удаления отдельно именно компонентов - помоему это бред. А вообще для такой реализации надо лог установленных файлов писать. Или даже логи, чтобы потом по ним отдельно бить скины, отдельно плагины и т.д.

Комсомолец 22-10-2008 03:25 930240

Цитата:

Цитата hb860
SetOutPath "$INSTDIR\Visual" »

Это я ивращался :)
Цитата:

Цитата hb860
Хватит уродовать мой код! »

ещё и не так извращусь! :biggrin:
Цитата:

Цитата hb860
Я не знаю что ты там именно пихаешь в c:\Aimp2\DATA\Profile\ »

там содержимое папки Profile
Цитата:

Цитата hb860
Положи настройки в
"c:\Aimp2\Profile\" »

уточни, что туда положить. У меня в папке с Aimp'ом (C:\Program Files\Aimp2\Data) там файл aimp.ini и папка Data, в которой все настройки. Вот это я и скопировал в c:\Aimp2\Profile\

Короче, то одно не получается, то другое. Забил вчера и пошел спать. :tongue:

hb860 22-10-2008 09:05 930296

Цитата:

Цитата Комсомолец
уточни, что туда положить. »

Рассмотрим два случая
1. Если у тебя конфигурация НЕ многопользовательская, то в C:\AIMP\Profile надо скопировать ВСЕ ФАЙЛЫ из папки c:\program files\aimp\data\profile
2. Если у тебя аимп настроен так, что настройки хранятся для каждого пользователя отдельно, то то в C:\AIMP\Profile надо скопировать ВСЕ ФАЙЛЫ из папки C:\documents and settings\Комсомолец\application data\AIMP

Комсомолец 22-10-2008 13:40 930478

hb860, у меня 1-й вариант
в C:\Program Files\AIMP2\Data лежит папка Profile и рядом файл aimp.ini. Оба ложить?

hb860 22-10-2008 14:22 930516

Комсомолец, ты издеваешься чтоли ? :)
Цитата:

Цитата hb860
то в C:\AIMP\Profile надо скопировать ВСЕ ФАЙЛЫ из папки c:\program files\aimp\data\profile »

Что тут может быть непонятного-то ? Берешь все файлы из папки Profile и копируешь в C:\AIMP\Profile.
Не надо никакой аимп.ини. Его мой скрипт создает сам(я подчеркиваю, МОЙ скрипт, до твоих извращений над ним :))

vipnucleus 22-10-2008 15:36 930579

А на бета версии будеш делать сборку ?

hb860 22-10-2008 16:36 930640

буду, на днях выложу. Просто паралельно хочу скрипт доработать

Комсомолец 22-10-2008 16:56 930656

hb860, тебе так не нравится, что я с ним пытаюсь сделать? Хорошо. Не буду постить его. Спасибо за проделанную тобой работу.

hb860 22-10-2008 16:58 930658

Комсомолец, чё ещё за детские обиды? Пость чё хочешь!
Просто ты меняешь мой код, и я придерживаюсь в своих ответах ссылок на оригинальные исходники.Что в этом плохого ?
Единственное, чё мне не совсем понятно, так это:
1. зачем менять модель папок
2. зачем удалять отдельно компоненты.
Извини если чем обидел, я не со зла и не специально

P.S. Я придумал удалять компоненты записью лога в один файл Aimp.log в формате ини-файла. Типа
Код:

[general]
files=10
file1=c:\program files\aimp2\aimp2.exe
...
file10=...
[skins]
files=1
file1=c:\program files\aimp2\skins\bla bla.acs2

И так далее
Вопрос: КАК ПИСАТЬ такой файл? Деисталером его обработать не проблема.

Комсомолец 22-10-2008 17:20 930666

Цитата:

Цитата hb860
1. зачем менять модель папок »

просто хотел проверит.
Цитата:

Цитата hb860
2. зачем удалять отдельно компоненты. »

хочется доработать скрипт под разные возможности. в жизни пригодится.
Обид нет.

вот. в общем вернулся к исходному.
читать дальше »
Код:

;Text/Registry definitions
!define PRODUCT_NAME "AIMP2"
!define PRODUCT_VERSION "2.5.0.306"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define BRANDING "Created by Комсомолец (с)2008"

;icons indexes definition
!define idxWAV 0
!define idxMP3 1
!define idxOGG 2
!define idxWMA 3
!define idxAUDIO 4
!define idxMOD 5
!define idxFLAC 6
!define idxMPC 7
!define idxSKIN 8
!define idxPLAYLIST 9

; MUI 1.67 compatible ------
!include "MUI.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\aimp.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue-full.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"

;service macroses
!insertmacro GetOptions
!insertmacro RefreshShellIcons

;Common directives
BrandingText "${BRANDING}"
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}_PowerPack.exe"
InstallDir "$PROGRAMFILES\AIMP2"
ShowInstDetails show
ShowUninstDetails show

;installation types
InstType "Полная"
InstType "Сокращенная"
InstType "Минимальная"

;variables section
Var SkinFile
Var IconFile
Var IconFileName
Var OpenCommand
Var ProfilePath
Var MultiUser
Var MultiUserCmdValue

;custom filetype registration function
!macro RegisterExtension extenstion /*ContentType PerceivedType*/ ClassName ClassStrDefault IconIndex
  WriteRegStr HKCR "${extenstion}" "" "${ClassName}"
  ;WriteRegStr HKCR "${extenstion}" "PerceivedType" "${PerceivedType}"
  ;WriteRegStr HKCR "${extenstion}" "Content Type" "${ContentType}"
 
  WriteRegStr HKCR "${ClassName}" "" "${ClassStrDefault}"
  WriteRegStr HKCR "${ClassName}\CLSID" "" "{0041494D-5032-4472-6F70-546172676574}"
  WriteRegStr HKCR "${ClassName}\DefaultIcon" "" "$IconFile,${IconIndex}"
  WriteRegStr HKLM "${ClassName}\shell\open" "" "Открыть в AIMP2"
  WriteRegStr HKCR "${ClassName}\shell\open\command" "" "$OpenCommand"
  WriteRegStr HKCR "${ClassName}\shell\open\DropTarget" "CLSID" "{0041494D-5032-4472-6F70-546172676574}"
!macroend



;sections
Section "!${PRODUCT_NAME}"
  SectionIn 1 2 3 RO
  StrCpy $ProfilePath "$INSTDIR\Data\Profile"
  SetOutPath "$INSTDIR\"
  File /r "C:\AIMP2\Player\*.*"
        WriteUninstaller "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\aimp2.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SectionEnd

Section /o "Отдельные настройки на каждого пользователя"
        SectionIn 1
        ;Very important be sure what SetShellVarContext has CURRENT value here
        StrCpy $MultiUser 1
SectionEnd

;=========================================================================================================================
SectionGroup /e "Дополнения"
       
        Section "Скины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Skins"
                File "C:\AIMP2\Skins\*.*"
        SectionEnd

        Section "Иконки типов файлов"
                SectionIn 1 2
                SetOutPath "$INSTDIR\Icons"
                File "C:\AIMP2\Icons\*.*"
        SectionEnd

        Section "Плагины"
                SectionIn 1 2
                SetOutPath "$INSTDIR\PlugIns"
                File "C:\AIMP2\PlugIns\*.*"
        SectionEnd

        Section "Визуализации"
                SectionIn 1 2
                SetOutPath "$INSTDIR\PlugIns"
                File "C:\AIMP2\Visual\*.*"
        SectionEnd

SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ярлыки"

        Section "В меню Пуск"
                SectionIn 1 2 3
                SetShellVarContext all
                CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Advanced Tag Editor.lnk" "$INSTDIR\AIMP2t.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Converter.lnk" "$INSTDIR\AIMP2c.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Recorder.lnk" "$INSTDIR\AIMP2r.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
        SectionEnd

        Section "На рабочем столе"
                SectionIn 1
                IfSilent +3
                SetShellVarContext all
                CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        SectionEnd

        Section "В панели быстрого запуска"
                SectionIn 1 2
                SetShellVarContext all
                CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        SectionEnd

SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ассоциации файлов"
        Section "-GetIconsDll"
                SectionIn 1 2 3
                ${GetOptions} $CMDLINE "/ICONS=" $IconFileName
                StrCmp $IconFileName "" EmptyIconFile
                IfFileExists "$INSTDIR\Icons\$IconFileName" EndSection IconFileNotExists
                       
                IconFileNotExists:
                        StrCpy $IconFileName ""
                EmptyIconFile:
                        StrCpy $IconFileName "aimp2.dll"
                EndSection:
                        StrCpy $IconFile "$INSTDIR\Player\Icons\$IconFileName"
                        StrCpy $OpenCommand "$INSTDIR\AIMP2.exe $\"%1$\""
        SectionEnd
       
        Section "Контекстое меню проводника"
                SectionIn 1 2
                RegDLL  "$INSTDIR\System\aimp_shell.dll"
        SectionEnd
       
        Section "AAC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aac" "AIMP.AAC" "AIMP2: AAC" ${idxAUDIO}
        SectionEnd
       
        Section "ACS2"
                SectionIn 1 2
                !insertmacro RegisterExtension ".acs2" "AIMP.ACS2" "AIMP2: ACS2" ${idxSKIN}
        SectionEnd
       
        Section "AIF"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aif" "AIMP.AIF" "AIMP2: AIF" ${idxAUDIO}
        SectionEnd       
       
        Section "AIFF"
                SectionIn 1 2
                !insertmacro RegisterExtension ".aiff" "AIMP.AIFF" "AIMP2: AIFF" ${idxAUDIO}
        SectionEnd               
       
        Section "APE"
                SectionIn 1 2
                !insertmacro RegisterExtension ".ape" "AIMP.APE" "AIMP2: APE" ${idxAUDIO}
        SectionEnd       

        Section "AUDIOCD"
                SectionIn 1 2 3
                !insertmacro RegisterExtension "AudioCD" "AIMP.AUDIOCD" "AIMP2: AUDIOCD" ${idxAUDIO}
        SectionEnd               
       
        Section "CDA"
                SectionIn 1 2
                !insertmacro RegisterExtension ".cda" "AIMP.CDA" "AIMP2: CDA" ${idxAUDIO}
        SectionEnd               

        Section "CUE"
                SectionIn 1 2
                !insertmacro RegisterExtension ".cue" "AIMP.CUE" "AIMP2: CUE" ${idxPLAYLIST}
        SectionEnd

        Section "FLAC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".flac" "AIMP.FLAC" "AIMP2: FLAC" ${idxFLAC}
        SectionEnd       

        Section "IT"
                SectionIn 1 2
                !insertmacro RegisterExtension ".it" "AIMP.IT" "AIMP2: IT" ${idxMOD}
        SectionEnd
       
        Section "M3U"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".m3u" "AIMP.M3U" "AIMP2: M3U" ${idxPLAYLIST}
        SectionEnd       
       
        Section "M3U8"
                SectionIn 1 2
                !insertmacro RegisterExtension ".m3u8" "AIMP.M3U8" "AIMP2: M3U8" ${idxPLAYLIST}
        SectionEnd       
       
        Section "MID"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mid" "AIMP.MID" "AIMP2: MID" ${idxAUDIO}
        SectionEnd       

        Section "MO3"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mo3" "AIMP.MO3" "AIMP2: MO3" ${idxMOD}
        SectionEnd       
       
        Section "MOD"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mod" "AIMP.MOD" "AIMP2: MOD" ${idxMOD}
        SectionEnd       

        Section "MP1"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mp1" "AIMP.MP1" "AIMP2: MP1" ${idxMP3}
        SectionEnd

        Section "MP2"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mp2" "AIMP.MP2" "AIMP2: MP2" ${idxMP3}
        SectionEnd       

        Section "MP3"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".mp3" "AIMP.MP3" "AIMP2: MP3" ${idxMP3}
        SectionEnd               

        Section "MPC"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mpc" "AIMP.MPC" "AIMP2: MPC" ${idxMPC}
        SectionEnd

        Section "MTM"
                SectionIn 1 2
                !insertmacro RegisterExtension ".mtm" "AIMP.MTM" "AIMP2: MTM" ${idxMOD}
        SectionEnd

        Section "OGG"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".ogg" "AIMP.OGG" "AIMP2: OGG" ${idxOGG}
        SectionEnd

        Section "PLC"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".plc" "AIMP.PLC" "AIMP2: PLC" ${idxPLAYLIST}
        SectionEnd

        Section "PLS"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".pls" "AIMP.PLS" "AIMP2: PLS" ${idxPLAYLIST}
        SectionEnd

        Section "S3M"
                SectionIn 1 2
                !insertmacro RegisterExtension ".s3m" "AIMP.S3M" "AIMP2: S3M" ${idxMOD}
        SectionEnd

        Section "UMX"
                SectionIn 1 2
                !insertmacro RegisterExtension ".umx" "AIMP.UMX" "AIMP2: UMX" ${idxMOD}
        SectionEnd       
       
        Section "WAV"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".wav" "AIMP.WAV" "AIMP2: WAV" ${idxWAV}
        SectionEnd       
       
        Section "WMA"
                SectionIn 1 2 3
                !insertmacro RegisterExtension ".wma" "AIMP.WMA" "AIMP2: WMA" ${idxWMA}
        SectionEnd       

        Section "WV"
                SectionIn 1 2
                !insertmacro RegisterExtension ".wv" "AIMP.WV" "AIMP2: WV" ${idxAUDIO}
        SectionEnd
       
        Section "XM"
                SectionIn 1 2
                !insertmacro RegisterExtension ".xm" "AIMP.XM" "AIMP2: XM" ${idxMOD}
        SectionEnd       
        Section "-RefreshIcons"
                SectionIn 1 2 3
                ${RefreshShellIcons}
        SectionEnd
SectionGroupEnd       
;=========================================================================================================================
Section "-PostinstallProfileProcessing"
        ;here we must set current user constats context
        SetShellVarContext current

        ;common INI settings
        CreateDirectory "$INSTDIR\DATA"
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System DefaultLang russian.lng
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System Version 2500
       
        ${GetOptions} $CMDLINE "/MULTIUSER=" $MultiUserCmdValue
        StrCmp $MultiUserCmdValue "" +2
        StrCpy $MultiUser $MultiUserCmdValue
       
        StrCmp $MultiUser 1 PerUserCFG OneUserCFG
       
        PerUserCFG:
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 1
                StrCpy $ProfilePath "$APPDATA\AIMP"
                CreateDirectory "$ProfilePath"
                Goto WriteCFG
        OneUserCFG:       
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 0
                CreateDirectory "$INSTDIR\DATA\Profile"
                Goto WriteCFG
        WriteCFG:
                SetOutPath "$ProfilePath"
                File /nonfatal /r "c:\Aimp2\Profile\"
               
                IfFileExists "$ProfilePath\AIMP2.INI" EndSection
                WriteINIStr "$ProfilePath\AIMP2.INI" System LangFile russian.lng ;язык по умолчанию для плеера
                WriteINIStr "$ProfilePath\AIMP2r.INI" System LangFile russian.lng ;язык по умолчанию для рекордера
                WriteINIStr "$ProfilePath\AIMP2c.INI" System LangFile russian.lng ;язык по умолчанию для конвертера
                WriteINIStr "$ProfilePath\AIMP2t.INI" System LangFile russian.lng ;язык по умолчанию для таггера       
        EndSection:       
                ${GetOptions} $CMDLINE "/SKIN=" $SkinFile
                StrCmp $SkinFile "" +2
                WriteINIStr "$ProfilePath\AIMP2.INI" Skins DefaultSkin $SkinFile        ;скин               
                WriteINIStr "$ProfilePath\AIMP2.INI" Skins ICL $IconFileName        ;скин
SectionEnd

Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "Удаление программы $(^Name) было успешно завершено."
FunctionEnd

Function un.onInit
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы уверены в том, что желаете удалить $(^Name) и все компоненты программы?" IDYES +2
  Abort
FunctionEnd

Section Uninstall
  UnRegDLL "$INSTDIR\System\aimp_shell.dll"
  ExecWait '$INSTDIR\aimp2.exe /REG=U'
  RMDir /r "$INSTDIR\"
  SetShellVarContext all
  RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
  Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
  Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  SetAutoClose true
SectionEnd


hb860 22-10-2008 18:15 930717

Выглядит работоспособно :)

Jeeb 22-10-2008 22:16 930982

Привет всем!
Скрипт очень полезный. hb860, отлично! :yu:
Сам пользовался, ибо в оригинальном установщике были проблемы с тихой установкой. Просто мне не нужно интегрировать свои компоненты в установщик.
На днях отписал разработчикам насчет их инсталлятора.
Обещали поправить, так что будем ждать.

Комсомолец 23-10-2008 05:08 931213

Jeeb, в скрипте hb860 так же можно ничего не интегрировать. только под тихую установку перепаковать.

hb860 23-10-2008 09:07 931280

Комсомолец, он орать будет что нет файлов в C:\aimp\skins и c:\aimp\icons. Можно выкинуть секции "Иконки" и "Скины", или поставить там File /notfatal.

2ALL. Обновил сборку. Добавил 3 скина и программу обновил до 309го билда.
Скрипт пока тот же. Новый функционал в глубочааайшей разработке.

Комсомолец 23-10-2008 14:22 931548

hb860, ну кто не добавляет ничего-догадается, что секции не нужны.

katok888 24-10-2008 20:21 932765

Не совсем в тему, но может кто поможет...
Проблема такая: при двойном щелчке на mp3-файле открывается окно плеера(aimp_2.50.306) и больше ничего не происходит, т.е. не воспроизводит и не добавляет в плейлист. С другими ассоциированными файлами все нормально ( waw, ogg и др.). В то же время если перетащить mp3 мышью в окно плеера то все норм., то же самое через контекстное меню.

hb860 24-10-2008 21:28 932823

Покажи чё записал для MP3 расширения в реестр.
Сборка моя или твоя ? Или как вообще ?

katok888 24-10-2008 23:21 932944

hb860, Сборка собственная вот кусок скрипта inno:
читать дальше »
Код:

[Registry]
Root: HKCR; SubKey: .AAC; ValueType: string; ValueName: ; ValueData: AIMP.AAC
Root: HKCR; SubKey: .AC3; ValueType: string; ValueName: ; ValueData: AIMP.AC3
Root: HKCR; SubKey: .acs2; ValueType: string; ValueName: ; ValueData: AIMP.ACS2
Root: HKCR; SubKey: .AIF; ValueType: string; ValueName: ; ValueData: AIMP.AIF
Root: HKCR; SubKey: .AIFF; ValueType: string; ValueName: ; ValueData: AIMP.AIFF
Root: HKCR; SubKey: .APE; ValueType: string; ValueName: ; ValueData: AIMP.APE
Root: HKCR; SubKey: .CDA; ValueType: string; ValueName: ; ValueData: AIMP.CDA
Root: HKCR; SubKey: .cue; ValueType: string; ValueName: ; ValueData: AIMP.CUE
Root: HKCR; SubKey: .dts; ValueType: string; ValueName: ; ValueData: AIMP.DTS
Root: HKCR; SubKey: .FLAC; ValueType: string; ValueName: ; ValueData: AIMP.FLAC
Root: HKCR; SubKey: .IT; ValueType: string; ValueName: ; ValueData: AIMP.IT
Root: HKCR; SubKey: .KAR; ValueType: string; ValueName: ; ValueData: AIMP.KAR
Root: HKCR; SubKey: .M3U; ValueType: string; ValueName: ; ValueData: AIMP.M3U
Root: HKCR; SubKey: .M3U8; ValueType: string; ValueName: ; ValueData: AIMP.M3U8
Root: HKCR; SubKey: .MID; ValueType: string; ValueName: ; ValueData: AIMP.MID
Root: HKCR; SubKey: .MIDI; ValueType: string; ValueName: ; ValueData: AIMP.MIDI
Root: HKCR; SubKey: .MO3; ValueType: string; ValueName: ; ValueData: AIMP.MO3
Root: HKCR; SubKey: .MOD; ValueType: string; ValueName: ; ValueData: AIMP.MOD
Root: HKCR; SubKey: .MP1; ValueType: string; ValueName: ; ValueData: AIMP.MP1
Root: HKCR; SubKey: .MP2; ValueType: string; ValueName: ; ValueData: AIMP.MP2
Root: HKCR; SubKey: .MP3; ValueType: string; ValueName: ; ValueData: AIMP.MP3
Root: HKCR; SubKey: .MPC; ValueType: string; ValueName: ; ValueData: AIMP.MPC
Root: HKCR; SubKey: .MTM; ValueType: string; ValueName: ; ValueData: AIMP.MTM
Root: HKCR; SubKey: .OGG; ValueType: string; ValueName: ; ValueData: AIMP.OGG
Root: HKCR; SubKey: .PLC; ValueType: string; ValueName: ; ValueData: AIMP.PLC
Root: HKCR; SubKey: .PLS; ValueType: string; ValueName: ; ValueData: AIMP.PLS
Root: HKCR; SubKey: .RMI; ValueType: string; ValueName: ; ValueData: AIMP.RMI
Root: HKCR; SubKey: .S3M; ValueType: string; ValueName: ; ValueData: AIMP.S3M
Root: HKCR; SubKey: .UMX; ValueType: string; ValueName: ; ValueData: AIMP.UMX
Root: HKCR; SubKey: .WAV; ValueType: string; ValueName: ; ValueData: AIMP.WAV
Root: HKCR; SubKey: .WMA; ValueType: string; ValueName: ; ValueData: AIMP.WMA
Root: HKCR; SubKey: .WV; ValueType: string; ValueName: ; ValueData: AIMP.WV
Root: HKCR; SubKey: .XM; ValueType: string; ValueName: ; ValueData: AIMP.XM
Root: HKCR; SubKey: AIMP.AAC; ValueType: string; ValueName: ; ValueData: AIMP2: AAC
Root: HKCR; SubKey: AIMP.AAC\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.AAC\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.AC3; ValueType: string; ValueName: ; ValueData: AIMP2: AC3
Root: HKCR; SubKey: AIMP.AC3\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.AC3\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.ACS2; ValueType: string; ValueName: ; ValueData: AIMP2: ACS2
Root: HKCR; SubKey: AIMP.ACS2\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,8
Root: HKCR; SubKey: AIMP.ACS2\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.AIF; ValueType: string; ValueName: ; ValueData: AIMP2: AIF
Root: HKCR; SubKey: AIMP.AIF\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.AIF\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.AIFF; ValueType: string; ValueName: ; ValueData: AIMP2: AIFF
Root: HKCR; SubKey: AIMP.AIFF\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.AIFF\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.APE; ValueType: string; ValueName: ; ValueData: AIMP2: APE
Root: HKCR; SubKey: AIMP.APE\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.APE\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.AUDIOCD; ValueType: string; ValueName: ; ValueData: AIMP2: AUDIOCD
Root: HKCR; SubKey: AIMP.AUDIOCD\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.AUDIOCD\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.CDA; ValueType: string; ValueName: ; ValueData: AIMP2: CDA
Root: HKCR; SubKey: AIMP.CDA\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.CDA\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.CUE; ValueType: string; ValueName: ; ValueData: AIMP2: CUE
Root: HKCR; SubKey: AIMP.CUE\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,9
Root: HKCR; SubKey: AIMP.CUE\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.DTS; ValueType: string; ValueName: ; ValueData: AIMP2: DTS
Root: HKCR; SubKey: AIMP.DTS\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.DTS\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.EventCDA; ValueType: string; ValueName: ; ValueData: AIMP2
Root: HKCR; SubKey: AIMP.EventCDA\DefaultIcon; ValueType: string; ValueName: ; ValueData:
Root: HKCR; SubKey: AIMP.EventCDA\shell\open\command; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\AIMP2.exe /CDA %1
Root: HKCR; SubKey: AIMP.EventMusic; ValueType: string; ValueName: ; ValueData: AIMP2
Root: HKCR; SubKey: AIMP.EventMusic\DefaultIcon; ValueType: string; ValueName: ; ValueData:
Root: HKCR; SubKey: AIMP.EventMusic\shell\open\command; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\AIMP2.exe /DIR %1
Root: HKCR; SubKey: AIMP.FLAC; ValueType: string; ValueName: ; ValueData: AIMP2: FLAC
Root: HKCR; SubKey: AIMP.FLAC\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,6
Root: HKCR; SubKey: AIMP.FLAC\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.IT; ValueType: string; ValueName: ; ValueData: AIMP2: IT
Root: HKCR; SubKey: AIMP.IT\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,5
Root: HKCR; SubKey: AIMP.IT\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.KAR; ValueType: string; ValueName: ; ValueData: AIMP2: KAR
Root: HKCR; SubKey: AIMP.KAR\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,5
Root: HKCR; SubKey: AIMP.KAR\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.M3U; ValueType: string; ValueName: ; ValueData: AIMP2: M3U
Root: HKCR; SubKey: AIMP.M3U\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,9
Root: HKCR; SubKey: AIMP.M3U\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.M3U8; ValueType: string; ValueName: ; ValueData: AIMP2: M3U8
Root: HKCR; SubKey: AIMP.M3U8\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,9
Root: HKCR; SubKey: AIMP.M3U8\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.MID; ValueType: string; ValueName: ; ValueData: AIMP2: MID
Root: HKCR; SubKey: AIMP.MID\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.MID\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.MIDI; ValueType: string; ValueName: ; ValueData: AIMP2: MIDI
Root: HKCR; SubKey: AIMP.MIDI\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.MIDI\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.MO3; ValueType: string; ValueName: ; ValueData: AIMP2: MO3
Root: HKCR; SubKey: AIMP.MO3\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,5
Root: HKCR; SubKey: AIMP.MO3\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.MOD; ValueType: string; ValueName: ; ValueData: AIMP2: MOD
Root: HKCR; SubKey: AIMP.MOD\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,5
Root: HKCR; SubKey: AIMP.MOD\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.MP1; ValueType: string; ValueName: ; ValueData: AIMP2: MP1
Root: HKCR; SubKey: AIMP.MP1\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,1
Root: HKCR; SubKey: AIMP.MP1\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.MP2; ValueType: string; ValueName: ; ValueData: AIMP2: MP2
Root: HKCR; SubKey: AIMP.MP2\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,1
Root: HKCR; SubKey: AIMP.MP2\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.MP3; ValueType: string; ValueName: ; ValueData: AIMP2: MP3
Root: HKCR; SubKey: AIMP.MP3\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,1
Root: HKCR; SubKey: AIMP.MP3\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.MPC; ValueType: string; ValueName: ; ValueData: AIMP2: MPC
Root: HKCR; SubKey: AIMP.MPC\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,7
Root: HKCR; SubKey: AIMP.MPC\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.MTM; ValueType: string; ValueName: ; ValueData: AIMP2: MTM
Root: HKCR; SubKey: AIMP.MTM\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,5
Root: HKCR; SubKey: AIMP.MTM\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.OGG; ValueType: string; ValueName: ; ValueData: AIMP2: OGG
Root: HKCR; SubKey: AIMP.OGG\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,2
Root: HKCR; SubKey: AIMP.OGG\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.PLC; ValueType: string; ValueName: ; ValueData: AIMP2: PLC
Root: HKCR; SubKey: AIMP.PLC\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,9
Root: HKCR; SubKey: AIMP.PLC\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.PLS; ValueType: string; ValueName: ; ValueData: AIMP2: PLS
Root: HKCR; SubKey: AIMP.PLS\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,9
Root: HKCR; SubKey: AIMP.PLS\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.RMI; ValueType: string; ValueName: ; ValueData: AIMP2: RMI
Root: HKCR; SubKey: AIMP.RMI\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,5
Root: HKCR; SubKey: AIMP.RMI\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.S3M; ValueType: string; ValueName: ; ValueData: AIMP2: S3M
Root: HKCR; SubKey: AIMP.S3M\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,5
Root: HKCR; SubKey: AIMP.S3M\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.UMX; ValueType: string; ValueName: ; ValueData: AIMP2: UMX
Root: HKCR; SubKey: AIMP.UMX\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,5
Root: HKCR; SubKey: AIMP.UMX\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.WAV; ValueType: string; ValueName: ; ValueData: AIMP2: WAV
Root: HKCR; SubKey: AIMP.WAV\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,0
Root: HKCR; SubKey: AIMP.WAV\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.WMA; ValueType: string; ValueName: ; ValueData: AIMP2: WMA
Root: HKCR; SubKey: AIMP.WMA\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,3
Root: HKCR; SubKey: AIMP.WMA\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.WV; ValueType: string; ValueName: ; ValueData: AIMP2: WV
Root: HKCR; SubKey: AIMP.WV\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,4
Root: HKCR; SubKey: AIMP.WV\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""
Root: HKCR; SubKey: AIMP.XM; ValueType: string; ValueName: ; ValueData: AIMP2: XM
Root: HKCR; SubKey: AIMP.XM\DefaultIcon; ValueType: string; ValueName: ; ValueData: {pf}\AIMP2\Icons\goal_fifa_2007.dll,5
Root: HKCR; SubKey: AIMP.XM\shell\open\command; ValueType: string; ValueName: ; ValueData: "{pf}\AIMP2\AIMP2.exe ""%1\"""


Kurunir 25-10-2008 08:17 933088

Вышел новый Aimp финальный 312 билд

Imago_ 25-10-2008 10:49 933144

katok888, а если так:
Код:

"{pf}\AIMP2\AIMP2.exe "\"%1\"""
или так..
Код:

"{pf}\AIMP2\AIMP2.exe \"%1\""
зы. насколько я помню кавычки добавляются интерпретатором при помощи обратного слэша, так что последний вариант более вероятен.

katok888 25-10-2008 11:14 933155

Imago_,так вообще не работает

katok888 25-10-2008 12:08 933187

Мистика какая-то переустановил пару раз и все заработало

Imago_ 25-10-2008 12:11 933190

katok888, а в реестре что прописалось?

katok888 25-10-2008 14:09 933246

Imago_,
Код:

[HKEY_CLASSES_ROOT\AIMP.MP3\Shell\open\Command]
@="\"C:\\Program Files\\AIMP2\\AIMP2.exe\" \"%1\""


Комсомолец 25-10-2008 14:19 933254

hb860, в очень глубочайшей, если быть точнее... ;) так что пока этим пользуемся.

Imago_ 25-10-2008 15:50 933298

katok888, и это гуд, камрад! :) Все как надо.

hb860 25-10-2008 16:29 933324

Цитата:

Цитата Imago_
katok888, и это гуд, камрад! Все как надо. »

Подтверждаю

Обновил сборку свою сборку до версии 2.5.0.312, ну и ещё ярлык добавил в панели быстрого запуска, но это мелочь. Забираем из первого поста :)

Комсомолец 25-10-2008 19:21 933456

hb860, ты где находишь эти сборки? дай линк.

hb860 25-10-2008 19:32 933467

Цитата:

Цитата Комсомолец
hb860, ты где находишь эти сборки? дай линк. »

Я их пакую своим скриптом САМ, на основе дистра из www.aimp.ru
Это МОИ сборки ДЛЯ СЕБЯ, кторые я ещё выкладываю здесь ДЛЯ ВСЕХ. Я надеюсь они кому то будут полезны, кроме меня.

Imago_ 25-10-2008 19:45 933480

Комсомолец, обычно актуальные сборки можно обнаружить тут

Комсомолец 25-10-2008 19:55 933488

Цитата:

Цитата Imago_
Бог всегда на стороне тех, у кого артиллерия получше. © Р.Хайнлайн »

спасибо за линк.
Хайнлайна читаешь? Респект!

hb860, я про это вообще-то говорил. ;)

hb860 25-10-2008 20:03 933499

Комсомолец, ну когда они есть, там они лежат. Щас нету сборки для тестирования, потому там пусто:) Всё просто :)

Jeeb 25-10-2008 22:04 933595

Привет!
Начиная с 312 билда тихая установка работает и в оригинальном установщике.

Комсомолец 26-10-2008 02:04 933806

Jeeb, спасибо за информацию, но свой наборчик удобнее))) да и оригинальный установщик от этого уже мало чем отличается.

Jeeb 26-10-2008 02:21 933814

Комсомолец, да я просто информирую... :)

Комсомолец 26-10-2008 04:44 933836

Jeeb, )))

katok888 26-10-2008 11:17 933929

hb860, По вашей ссылке http://hb860.ifolder.ru/8738429 каспер визжит:
Код:

обнаружено: троянская программа Trojan-Downloader.JS.Agent.ccu        URL: http://hb860.ifolder.ru/8738429//hb860.ifolder
, а с депозита все норм.

hb860 26-10-2008 12:22 933967

katok888, заливал везде один и тот же файл. Trojan-Downloader.JS.Agent.ccг - это троянский Javascript, который подсовывает Ifloder)) Сама сборка чистая

Jeeb, дык он вроде ещё на стадии бэта-тестирования 20х начал работать. Собственно, скрипт позволяет не только тихо программу поставить, но и дополнений натолкать, настройки свой прикрепить... Хотя никто не мешает вам засунуть это всё в SFX и распаковать в папку установки. Каждый сам решает что ему нужно.

katok888 26-10-2008 20:55 934349

hb860, Возможно ли использования вашей сборки с ключом AIMP2.exe /S /MULTIUSER=1
в качестве аддона? У меня почему то не установилось , хотя на живую систему с этими ключами ОК.
В дистре в папке SVCPACK инсталлятор есть, запись в SVCPACK.inf тоже есть.

Jeeb 26-10-2008 22:02 934415

hhb860, только вот после 215 (или чуть позже) обнаружился баг - не работал ключ /S он просто распаковывал в PF и все...

hb860 27-10-2008 08:56 934651

katok888, предполагаю, что можно. Хотя я не такой большой знаток особенностей установки приложений через аддоны, могу сказать одно - на этом этапе уже есть куски реестра которые пишет скрипт, поэтому проблем не должно быть. Во всем остальном инсталятор мало чем отличается от SFX архива.
Цитата:

Цитата katok888
У меня почему то не установилось »

А как выглядело ? Сами файлы то распаковались ?

katok888 27-10-2008 19:15 935254

Цитата:

Цитата hb860
А как выглядело ? Сами файлы то распаковались ? »

Нет

Комсомолец 28-10-2008 10:47 935803

Jeeb, 211 и 2.50.273 и выше ставил-всё отлично срабатывало с оригинальным инсталлятором и с тем. который в шапке.

hb860 28-10-2008 13:20 935946

katok888, вожможно, команда не отработала вовсе
Где взять скелет аддона, чтоб поглядеть?

katok888 28-10-2008 14:55 936034

hb860, С ключом /S ставится. А аддон самый обыкновенный SVCPACK

hb860 28-10-2008 16:13 936121

Чудеса, блин. А чё записывается в SVCPACK.INF после обработки аддона ?

katok888 28-10-2008 16:29 936141

hb860, в первом случае
Код:

AIMP2.exe /S /MULTIUSER=1
во втором
Код:

AIMP2.exe /S

hb860 28-10-2008 16:39 936147

Я просто не знаю в чём может быть дело! Мож слишком длинная командная строка ? или ещё чё ? Мож "=" недопустимый символ, ХЗ. ПОпробуй не мультиюзер туда запихать, а /ICONS=new.dll
ПОглядим чё будет. Если и это не прокатит, значит равно нельзя в SVCPACK юзать

katok888 28-10-2008 18:50 936283

Цитата:

Цитата hb860
/ICONS=new.dll »

тоже не прокатывает

hb860 29-10-2008 08:01 936752

Значит "равно" пользовать нельзя.Ну по крайней мере я так думаю.

hb860 30-10-2008 08:35 937743

katok888, попробуй сделать так:
Вместо
Код:

${GetOptions} $CMDLINE "/ICONS=" $IconFileName
Написать
Код:

${GetOptions} $CMDLINE "/ICONS:" $IconFileName
и во всех подобных местах заменить $CMDLINE "/ПАРАМЕТР=" на $CMDLINE "/ПАРАМЕТР:"
Тогда установку в аддоне надо будет написать AIMP2.exe /S /MULTIUSER:1 /ICONS:new.dll
Мож прокатит

katok888 30-10-2008 16:04 938162

hb860, попробую

hb860 24-11-2008 13:20 961919

katok888, получилось в итоге или нет ?

ВСЕМ:
В связи с выходом новой версии Aimp2 пересобрал сборку/обновил шапку

di2blo 24-11-2008 22:45 962547

Извините не читал всю тему, возможно уже был такой вопрос. Какой ключ нужно использовать чтобы создавался ярлык на раб столе?

hb860 25-11-2008 09:44 962853

Такого вопроса не было. При тихой установке ярлык на рабочем столе не создается. Чтобы он создавался, необходимо модифиировать скрипт, заменив
Код:

            Section "На рабочем столе"
                SectionIn 1
                IfSilent +3
                SetShellVarContext all
                CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        SectionEnd

на
Код:

            Section "На рабочем столе"
                SectionIn 1
                SetShellVarContext all
                CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        SectionEnd

После этого пересобрать плеер. Я добавлю управление ярлыками аргументами командной строки в следующей версии скрипта
Цитата:

Цитата hb860
Внимательно прочитайте этот пост!
Возможности текущей версии:
1. С ключом /S ставится всё, кроме значка на рабочем столе »


Kurunir 30-11-2008 15:52 968187

AIMP 2.51.323 уже вышел... что то быстро стали делать обновления

hb860 30-11-2008 21:54 968508

Обновил шапку/сборку до версии 2.51.323

hb860 16-12-2008 15:26 981994

Цитата:

Что нового в AIMP v2.51 Build 328?
Исправлено: после принудительного завершения работы программы, она не запускалась до перезагрузки
Исправлено: плейлист не синхронизировался со списком библиотеки при запуске файла на проигрывание
Исправлено: падение шафл-менеджера в некоторых случаях при переключении воспроизведения между плейлистами
Исправлено: неправильно определялась длительность некоторых WAV-файлов
Исправлено: сбрасывался кэш оценок песен при изменении каких-либо настроек в плеере
Исправлены мелкие ошибки и недоработки
Новая сборка в шапке.

Kurunir 31-12-2008 16:27 994551

уже вышла AIMP v2.51 Build 330... что то клепают быстро

hb860 05-01-2009 20:32 998222

Итак, уважаемые пользователи, после долгого молчания выхожу на связь
Оптимизирован код скрипта, добавлена возможность управления ярлыками из коммандной строки
Теперь ключи командной работают только при ТИХОЙ установке(давно хотел это сделать). Вобщем, все подробности в шапке

hb860 08-01-2009 17:36 1000647

Я вот тут думаю... а не дофига ли ключей ?
Может, попробовать написать по типу K-Lite ?
Типа
Код:

aimp2-xxx.exe -MakeUnattend
Создается aimp2-xxx.ini
А потом при aimp2-xxx.exe /S подцепается. Если не находится - ставится по-умолчанию.
Кто что думает ?

zilexa 22-01-2009 00:44 1015383

Could someone translate the first post (doesn't have to be very good or complete) to English?
This program is becoming known outside Russia.

I want to do silent install with skin, icons, file associations and custom settings (profile) and Dutch as the default language (all other languages do not have to be installed).

How do I use the .nsi file?

Комсомолец 22-01-2009 18:33 1016081

hb860, думаешь, получится? это ж не inno. Переводи человеку шапку. вишь говорит-аимп не только в России знают. :) Ну и заодно поучи))

hb860 22-01-2009 20:49 1016220

zilexa, well, i try :)
How to make your own setup:
1. Make next folders on your drive C: - c:\Aimp\Player, c:\Aimp\skins\, c:\aimp\Icons, c:\Aimp\profile
2. Copy to c:\Aimp\Player files from original untouched setup. You can use 7-zip ( http://www.7-zip.org ) archiver to extract them from original distro.
3. Copy into c:\aimp\skins\ your favorite skins
4. Copy into c:\aimp\icons\ your favorite icons
5. This item is not mandatory. Copy into c:\Aimp\profile content of %programfiles%\aimp\data\profile(do this if you have "one user" configuration, in other case you have to copy content of %APPDATA%\AIMP).
5. Compile .nsi file using NSIS compiler( http://nsis.sf.net ). You will get Aimp2-<current version>.exe file.

For Dutch Language by default replace this code
Код:

        WriteINIStr "$ProfilePath\AIMP2.INI" System LangFile russian.lng ;язык по умолчанию для плеера
                WriteINIStr "$ProfilePath\AIMP2r.INI" System LangFile russian.lng ;язык по умолчанию для рекордера
                WriteINIStr "$ProfilePath\AIMP2c.INI" System LangFile russian.lng ;язык по умолчанию для конвертера
                WriteINIStr "$ProfilePath\AIMP2t.INI" System LangFile russian.lng ;язык по умолчанию для таггера

with next code
Код:

        WriteINIStr "$ProfilePath\AIMP2.INI" System LangFile dutch.lng
                WriteINIStr "$ProfilePath\AIMP2r.INI" System LangFile dutch.lng
                WriteINIStr "$ProfilePath\AIMP2c.INI" System LangFile dutch.lng
                WriteINIStr "$ProfilePath\AIMP2t.INI" System LangFile dutch.lng

Also you have to know what if you decide to include your own settings as described at item 5, they will kept except skin & icons specified from command line

Typical usage:
1. Simple silent installation: AIMP2-2.5.0.303.exe /S
2. With custom skin by default: AIMP2-2.5.0.303.exe /S /SKIN=WMP11.acs2
3. With custom skin and icons library: AIMP2-2.5.0.303.exe /S /SKIN=WMP11.acs2 /ICONS=XP.dll
4. With custom skin and icons library, what contains spaces in their names: AIMP2-2.5.0.303.exe /S /SKIN="WMP11 Glow.acs2" /ICONS="XP Blue.dll"
5. Multiuser configuration of player: AIMP2-2.5.0.303.exe /S /SKIN="WMP11 Glow.acs2" /ICONS="XP Blue.dll" /MULTIUSER=1
6. Command line shortcuts management keys:
AIMP2-2.5.0.303.exe /S /shortcut=101 - shortcuts in start menu and on desktop
AIMP2-2.5.0.303.exe /S /shortcut=011 - shortcuts in start menu and quick launch
AIMP2-2.5.0.303.exe /S /shortcut=110 -shortcuts on desktop and quick launch
AIMP2-2.5.0.303.exe /S /shortcut=000 - no any shortcuts
Remember what /shortcut=1 means /shortcut=001,not 100

Комсомолец, уверен что получится. И при чём тут инно или не инно ? Или ты считаешь что у NSIS функционал слабее ?

Комсомолец 23-01-2009 06:27 1016499

hb860, я не считаю так. просто у тебя спросил-ты лучше это дело изучил. Хорошо перевел))

Habetdin 10-06-2009 17:50 1140249

hb860, будет ли скрипт для AIMP v2.60.xxx?

hb860 11-06-2009 08:32 1140731

Habetdin, его можно перепаковать старым. Новый никак не доделаю, а просто циферки в скрипте поменять может каждый, смысла не вижу этого делать.

Habetdin 11-06-2009 10:26 1140797

hb860, там не только "циферки" - там утилит нет

volk1234 11-06-2009 12:32 1140873

hb860
Насчет перевода. Я чуток подскажу, хотя все с кем я говорю по англиски говорят, что я говорю плохо :)

Правильнее будет:

читать дальше »
How to make deployed setup:
1. Make folowing folders on your drive C: - c:\Aimp\Player, c:\Aimp\skins\, c:\aimp\Icons, c:\Aimp\profile
2. Copy to folder c:\Aimp\Player files from original distributive. You can use 7-zip ( http://www.7-zip.org ) archiver to extract files from original distro.
3. Copy to c:\aimp\skins\ your favorite skins
4. Copy to c:\aimp\icons\ your favorite icons
и т.д.
не претендую на правоту, но так не режет глаз...

hb860 11-06-2009 16:26 1141068

volk1234, если считаешь что перевод вообще оказался кому-нить полезен - я исправлю. Я вообще не претендую на знание английского, с грамматикой у меня проблемы дикие.
Habetdin, посмотрю. Ярлыки выкинуть тоже не проблема, ну или поправить. Я просто 2.60 мельком успел только глянуть.
Хочется нормальный скрипт уже написать, который цепает файлы конфигурации, как k-lite, и умеет их создавать.

XCV 28-08-2009 17:12 1205654

hb860 Тема умерла? или будет продолжение?

hb860 28-08-2009 21:01 1205819

будет. обещаю.

hb860 08-09-2009 09:18 1213856

Итак, после продолжительного молчания, представляю новый скрипт:
читать дальше »
Код:

;Text/Registry definitions
!define PRODUCT_NAME "AIMP2"
!define PRODUCT_VERSION " 2.6.0.499 rc1"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define BRANDING "By Happy Bulldozer860"
!define pkgdir "d:\package"

;includes
!include "MUI.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"
!include "WordFunc.nsh"


SetCompressor /SOLID lzma
;SetCompress Off
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"

;service macroses
!insertmacro GetOptions
!insertmacro RefreshShellIcons



;variables section
;ui variables
Var SkinFile
Var IconFile
Var IconFileName
Var WindowCaption
;unnatend mode variables
Var IniFile
Var gMode

;open command for files related with $installdir
Var OpenCommand

;profiles related varialbes
Var ProfilePath
Var MultiUser

;extensions related variables
Var ClassName
Var IconIndex


;script initialization
Function .onInit
        ;
        ; when /g switch specified and not present /s switch, then generate default config
        ;
        ;inifile definition
        StrCpy $WindowCaption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
        ${WordReplace} "$EXEFILE" ".exe" ".ini" "+" $IniFile
        StrCpy $IniFile "$EXEDIR\$IniFile"
        ;gMode detection
        StrCpy $gMode 0
        ${GetOptions} $CMDLINE "/G" $0
        ;if not found /G then exit
        IfErrors EndFunc 0
        ;When Silent setup then ignoring /G
        IfSilent +3 0
        StrCpy $gMode 1
        StrCpy $WindowCaption "Генератор файла ответов ${PRODUCT_NAME}"
        EndFunc:
FunctionEnd






;Common directives
BrandingText "${BRANDING}"
Name "${PRODUCT_NAME}"
Caption "$WindowCaption"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"
InstallDir "$PROGRAMFILES\AIMP2"
ShowInstDetails show
ShowUninstDetails show

;installation types
InstType "Полная"
InstType "Сокращенная"
InstType "Минимальная"

!macro ProcessSection secID
        ;
        ;if gMode=1 - generate default config. if 0 and not silent - reads the config
        StrCpy $R0 1
        StrCmp $gMode 1 WriteMode
        IfSilent 0 EndMarco
                IfFileExists $IniFile 0 EndMarco
                ReadINIStr $R0 $IniFile Sections ${secID}
                IfErrors 0 +2
                StrCpy $R0 0
                Goto EndMarco
        WriteMode:
                StrCpy $R0 0
                WriteINIStr $IniFile Sections ${secID} 1
        EndMarco:       
!macroend

;custom filetype registration function
!macro RegisterExtension extenstion
        ;create a class for extesion
                ;read/write section state
                !insertmacro ProcessSection ${extenstion}
                ;if $r0 is 0 then exit section
                StrCmp $R0 0 EndMacro 0
                ;--------------section code----------------                       
               
  StrCpy $ClassName "AIMP.${extenstion}"
  StrCmp ${extenstion} "AUDIOCD" +2 0
  WriteRegStr HKCR ".${extenstion}" "" "$ClassName"
  WriteRegStr HKCR "${extenstion}" "" "$ClassName"
  WriteRegStr HKCR "$ClassName" "" "AIMP: ${extenstion}"
  WriteRegStr HKCR "$ClassName\CLSID" "" "{0041494D-5032-4472-6F70-546172676574}"
  WriteRegStr HKCR "$ClassName\shell\open" "" "Открыть в AIMP2"
  WriteRegStr HKCR "$ClassName\shell\open\command" "" "$OpenCommand"
  WriteRegStr HKCR "$ClassName\shell\open\DropTarget" "CLSID" "{0041494D-5032-4472-6F70-546172676574}"
        ;define  icon for class
        ${Switch} ${extenstion}       
                ${Case} "WAV"
                        StrCpy $IconIndex 0
                        ${Break}       
                ;mp3 group       
                ${Case} "MP3"
                        StrCpy $IconIndex 1
                        ${Break}
                ${Case} "MP1"
                        StrCpy $IconIndex 1
                        ${Break}                       
                ${Case} "MP2"
                        StrCpy $IconIndex 1
                        ${Break}
                       
                ${Case} "OGG"
                        StrCpy $IconIndex 2
                        ${Break}
                       
                ${Case} "WMA"
                        StrCpy $IconIndex 3
                        ${Break}                       
                ;mod group       
                ${Case} "MOD"
                        StrCpy $IconIndex 5
                        ${Break}       
                ${Case} "IT"
                        StrCpy $IconIndex 5
                        ${Break}       
                ${Case} "MO3"
                        StrCpy $IconIndex 5
                        ${Break}
                ${Case} "MTM"
                        StrCpy $IconIndex 5
                        ${Break}                       
                ${Case} "S3M"
                        StrCpy $IconIndex 5
                        ${Break}       
                ${Case} "XM"
                        StrCpy $IconIndex 5
                        ${Break}
                       
                       
                ${Case} "FLAC"
                        StrCpy $IconIndex 6
                        ${Break}                       
                       
                ${Case} "MPC"
                        StrCpy $IconIndex 7
                        ${Break}
                       
                ${Case} "ACS2"
                        StrCpy $IconIndex 8
                        ${Break}
                ;playlists group       
                ${Case} "CUE"
                        StrCpy $IconIndex 9                               
                        ${Break}
                ${Case} "PLS"
                        StrCpy $IconIndex 9                               
                        ${Break}
                ${Case} "M3U"
                        StrCpy $IconIndex 9                               
                        ${Break}       
                ${Case} "M3U8"
                        StrCpy $IconIndex 9                               
                        ${Break}
                ${Case} "PLC"
                        StrCpy $IconIndex 9                               
                        ${Break}                       
                ${Case} "UMX"
                        StrCpy $IconIndex 9                               
                        ${Break}
                       
                ${Default}
                        StrCpy $IconIndex 4
                        ${Break}
        ${EndSwitch}
  WriteRegStr HKCR "$ClassName\DefaultIcon" "" "$IconFile,$IconIndex"       
  EndMacro:
!macroend



; !macro UnRegisterExtension extenstion
  ; StrCpy $ClassName "AIMP.${extenstion}"
  ; ReadRegStr $0 HKCR ".${extenstion}" ""
  ; StrCmp $0        $ClassName 0 +3
  ; DeleteRegKey HKCR ".${extenstion}"
  ; DeleteRegKey HKCR "$ClassName"
; !macroend



;sections
Section "!${PRODUCT_NAME}" CORE
  SectionIn 1 2 3 RO
  StrCmp $gMode 1 0 NotgMode
  WriteINIStr $IniFile Advanced Directory $INSTDIR
  Goto EndSection
  NotgMode:
  ;this is required section so don't perfom reading from inifile
  StrCpy $ProfilePath "$INSTDIR\Data\Profile"
  IfSilent 0 NotSilent
  IfFileExists $IniFile 0 NotSilent
  ReadINIStr $R0 $IniFile Advanced Directory
  StrCmp $R0 "" NotSilent 0
  StrCpy $INSTDIR $R0       
  NotSilent:
  SetOutPath "$INSTDIR\"
  File /r "${pkgdir}\AIMP\Player\*.*"
        WriteUninstaller "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\aimp2.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\uninst.exe"
        WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
       
  EndSection:
SectionEnd

Section "Отдельные настройки на каждого пользователя" MultiUser
        SectionIn 1 2 3
        ;read/write section state
        !insertmacro ProcessSection "MultiUser"
        ;if $r0 is 0 then exit section
        StrCmp $R0 0 EndSection 0
        ;--------------section code----------------
        StrCpy $MultiUser 1
        ;-------------------------------------------
        EndSection:
SectionEnd

;=========================================================================================================================
SectionGroup /e "Дополнения"
        Section "Скины" Skins
                SectionIn 1
                ;read/write section state
                !insertmacro ProcessSection "Skins"
                ;if $r0 is 0 then exit section
                StrCmp $R0 0 EndSection 0
                ;--------------section code----------------               
                SetOutPath "$INSTDIR\Skins"
                File "${pkgdir}\AIMP\Skins\*.*"
                ;-------------------------------------------
                EndSection:               
        SectionEnd

        Section "Иконки типов файлов" Icons
                SectionIn 1
                !insertmacro ProcessSection "Icons"
                ;if $r0 is 0 then exit section
                StrCmp $R0 0 EndSection 0
                ;--------------section code----------------                       
                SetOutPath "$INSTDIR\Icons"
                File "${pkgdir}\AIMP\Icons\*.*"
                ;-------------------------------------------
                EndSection:                       
        SectionEnd
SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ярлыки"
        Section "В меню Пуск" StartMenu
                SectionIn 1 2
                !insertmacro ProcessSection "StartMenu"
                ;if $r0 is 0 then exit section
                StrCmp $R0 0 EndSection 0
                ;--------------section code----------------               
                SetShellVarContext all
                CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
                IfFileExists "$INSTDIR\AIMP2t.exe" 0 +2
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Advanced Tag Editor.lnk" "$INSTDIR\AIMP2t.exe"
                IfFileExists "$INSTDIR\AIMP2c.exe" 0 +2
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Converter.lnk" "$INSTDIR\AIMP2c.exe"
                IfFileExists "$INSTDIR\AIMP2r.exe" 0 +2
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Recorder.lnk" "$INSTDIR\AIMP2r.exe"
                CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
                ;-------------------------------------------
                EndSection:       
        SectionEnd
        Section "На рабочем столе" Desktop
                SectionIn 1
                !insertmacro ProcessSection "Desktop"
                ;if $r0 is 0 then exit section
                StrCmp $R0 0 EndSection 0               
                ;--------------section code----------------       
                SetShellVarContext all
                CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
                ;-------------------------------------------
                EndSection:       
        SectionEnd
        Section "В панели быстрого запуска" QuickLaunch
                SectionIn 1
                !insertmacro ProcessSection "QuickLaunch"
                ;if $r0 is 0 then exit section
                StrCmp $R0 0 EndSection 0               
                ;--------------section code----------------       
                SetShellVarContext all
                CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
                ;-------------------------------------------
                EndSection:       
        SectionEnd       
SectionGroupEnd       

;=========================================================================================================================
SectionGroup /e "Ассоциации файлов"

        Section "-SetupIconsVariables"
                StrCmp $gMode 1 NotgMode       
                ;default icon file
                StrCpy $IconFileName "aimp2.dll"
                IfSilent 0 EndSection
                        IfFileExists $IniFile 0 EndSection
                        ReadINIStr $R0 $IniFile Advanced IconFileName
                        IfFileExists "$INSTDIR\Icons\$R0" 0 EndSection
                        StrCpy $IconFileName $R0
                EndSection:
                        StrCpy $IconFile "$INSTDIR\Icons\$IconFileName"
                        StrCpy $OpenCommand "$INSTDIR\AIMP2.exe $\"%1$\""
                NotgMode:       
        SectionEnd
       
        Section "Контекстое меню проводника" ContextMenu
                SectionIn 1 2
                ;read/write section state
                !insertmacro ProcessSection "ContextMenu"
                ;if $r0 is 0 then exit section
                StrCmp $R0 0 EndSection 0
                ;--------------section code----------------               
                RegDLL  "$INSTDIR\System\aimp_shell.dll"
                EndSection:
        SectionEnd
       
        Section "AAC" aac
                SectionIn 1 2
                !insertmacro RegisterExtension "AAC"
        SectionEnd
       
        Section "ACS2"
                SectionIn 1 2
                !insertmacro RegisterExtension "ACS2"
        SectionEnd
       
        Section "AIF"
                SectionIn 1 2
                !insertmacro RegisterExtension "AIF"
        SectionEnd       
       
        Section "AIFF"
                SectionIn 1 2
                !insertmacro RegisterExtension "AIFF"
        SectionEnd               
       
        Section "APE"
                SectionIn 1 2
                !insertmacro RegisterExtension "APE"
        SectionEnd       

        Section "AUDIOCD"
                SectionIn 1 2
                !insertmacro RegisterExtension "AUDIOCD"
        SectionEnd               
       
        Section "CDA"
                SectionIn 1 2
                !insertmacro RegisterExtension "CDA"
        SectionEnd               

        Section "CUE"
                SectionIn 1 2
                !insertmacro RegisterExtension "CUE"
        SectionEnd

        Section "FLAC"
                SectionIn 1 2
                !insertmacro RegisterExtension "FLAC"
        SectionEnd       

        Section "IT"
                SectionIn 1 2
                !insertmacro RegisterExtension "IT"
        SectionEnd
       
        Section "M3U"
                SectionIn 1 2
                !insertmacro RegisterExtension "M3U"
        SectionEnd       
       
        Section "M3U8"
                SectionIn 1 2
                !insertmacro RegisterExtension "M3U8"
        SectionEnd       
       
        Section "MID"
                SectionIn 1 2
                !insertmacro RegisterExtension "MID"
        SectionEnd       

        Section "MO3"
                SectionIn 1 2
                !insertmacro RegisterExtension "MO3"
        SectionEnd       
       
        Section "MOD"
                SectionIn 1 2
                !insertmacro RegisterExtension "MOD"
        SectionEnd       

        Section "MP1"
                SectionIn 1 2
                !insertmacro RegisterExtension "MP1"
        SectionEnd

        Section "MP2"
                SectionIn 1 2
                !insertmacro RegisterExtension "MP2"
        SectionEnd       

        Section "MP3"
                SectionIn 1 2
                !insertmacro RegisterExtension "MP3"
        SectionEnd               

        Section "MPC"
                SectionIn 1 2
                !insertmacro RegisterExtension "MPC"
        SectionEnd

        Section "MTM"
                SectionIn 1 2
                !insertmacro RegisterExtension "MTM"
        SectionEnd

        Section "OGG"
                SectionIn 1 2
                !insertmacro RegisterExtension "OGG"
        SectionEnd

        Section "PLC"
                SectionIn 1 2
                !insertmacro RegisterExtension "PLC"
        SectionEnd

        Section "PLS"
                SectionIn 1 2
                !insertmacro RegisterExtension "PLS"
        SectionEnd

        Section "S3M"
                SectionIn 1 2
                !insertmacro RegisterExtension "S3M"
        SectionEnd

        Section "UMX"
                SectionIn 1 2
                !insertmacro RegisterExtension "UMX"
        SectionEnd       
       
        Section "WAV"
                SectionIn 1 2
                !insertmacro RegisterExtension "WAV"
        SectionEnd       
       
        Section "WMA"
                SectionIn 1 2
                !insertmacro RegisterExtension "WMA"
        SectionEnd       

        Section "WV"
                SectionIn 1 2
                !insertmacro RegisterExtension "WV"
        SectionEnd
       
        Section "XM"
                SectionIn 1 2
                !insertmacro RegisterExtension "XM"
        SectionEnd       
        Section "-RefreshIcons"
                SectionIn 1 2 3
                StrCmp $gMode 1 +2 0
                ${RefreshShellIcons}
        SectionEnd
SectionGroupEnd       
;=========================================================================================================================
Section "-PostinstallProfileProcessing"
        ;here we must set current user constats context
        StrCmp $gMode 1 NotgMode
        SetShellVarContext current

        ;common INI settings
        CreateDirectory "$INSTDIR\DATA"
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System DefaultLang russian.lng
        WriteINIStr "$INSTDIR\DATA\AIMP.INI" System Version 2603
       
       
        StrCmp $MultiUser 1 PerUserCFG OneUserCFG
       
        PerUserCFG:
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 1
                StrCpy $ProfilePath "$APPDATA\AIMP"
                CreateDirectory "$ProfilePath"
                Goto WriteCFG
        OneUserCFG:       
                WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 0
                CreateDirectory "$INSTDIR\DATA\Profile"
                Goto WriteCFG
        WriteCFG:
                SetOutPath "$ProfilePath"
                File /nonfatal /r "${pkgdir}\Aimp\Profile\"
               
                IfFileExists "$ProfilePath\AIMP2.INI" EndSection
                WriteINIStr "$ProfilePath\AIMP2.INI" System LangFile russian.lng ;язык по умолчанию для плеера
                WriteINIStr "$ProfilePath\AIMP2r.INI" System LangFile russian.lng ;язык по умолчанию для рекордера
                WriteINIStr "$ProfilePath\AIMP2c.INI" System LangFile russian.lng ;язык по умолчанию для конвертера
                WriteINIStr "$ProfilePath\AIMP2t.INI" System LangFile russian.lng ;язык по умолчанию для таггера       
        EndSection:       
        IfSilent 0 NotSilent
                IfFileExists $IniFile 0 NoIniFile
                        ReadINIStr $R0 $IniFile Advanced SkinFile
                        IfFileExists "$INSTDIR\Skins\$R0" 0 NoIniFile
                        StrCpy $SkinFile $R0
                NoIniFile:
        WriteINIStr "$ProfilePath\AIMP2.INI" Skins DefaultSkin $SkinFile        ;скин               
       
        NotSilent:
        WriteINIStr "$ProfilePath\AIMP2.INI" Skins ICL $IconFileName        ;значки
        NotgMode:
SectionEnd

Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "Удаление программы $(^Name) было успешно завершено."
FunctionEnd

Function un.onInit
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы уверены в том, что желаете удалить $(^Name) и все компоненты программы?" IDYES +2
  Abort
FunctionEnd

Section Uninstall
  UnRegDLL "$INSTDIR\System\aimp_shell.dll"
  ExecWait '$INSTDIR\aimp2.exe /REG=U'
  RMDir /r "$INSTDIR\"
  SetShellVarContext all
  RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
  Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
  Delete "$QUICKLAUNCH\${PRODUCT_NAME}.lnk"
  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  SetAutoClose true
SectionEnd



Теперь инсталятор поддерживает всего два ключа командной строки - /G и /S
/G - запускает инсталятор в режиме генератора файла ответов, примерно также работает инсталятор к-лайт кодеков с ключом -MakeUnatended. :) Расставляете галки на нужных компонентах, в системе никаких изменений не происходит, а факт выбора компонентов записываются в файл с именем <ИМЯ_СБОРКИ_БЕЗ_РАСШИРЕНИЯ>.ini.

/S - ну этот ключ в представлении не нуждается, правда, теперь при его указании инсталятор смотрит наличие файла ответов, и если текущий компонент помечен как выбранный, компонент устанавливается, в противном случае компонент игнорируется. Если файла ответов нет, происходит обычная тихая установка.

Возможность указания пользовательской шкуры и библиотеки значков вынесена также в файл ответов. В файл ответов необходимо добавить(увы, пока вручную) три строки:
Код:

[advanced]
SkinFile=Lagoon.acs2
IconFileName=aimp classic2.dll

Скрипт поддерживает упаковку аимпа с TOOLS и без, без необходимости его правки. Проверяется наличие соотвествующих файлов, и если их нет, ярлыки на инструменты просто не создаются.
:beta: Скрипт нуждается в доработке. Я хочу иметь возможность указывать шкуру и файл значков через генератор файла ответов. Также:
-в файле ответов пока нельзя указать папку, куда ставить программу, в режиме генератора она не сохраняется.
-при упаковке версии 2.60 галки, что плеер ассоциирован с файлами, не проставляются. Тем не менее, ассоциации проставляются корректно, файлы остаются за плеером.
-при наличии уже готового файла ответов, в режиме генератора, если вы НЕ выбираете компонент, а в файле ответов он присутсвует как выбранный, ВЫБОР НЕ БУДЕТ СБРОШЕН. Рекомендуется удалять старые файлы ответов перед запуском генератора.

ВНИМАНИЕ! Если вы запускали генератор файлом, к примеру AIMP2- 2.6.0.499 rc1.exe, а потом переименовали в AIMP2.exe, не забудьте переименовать и файл ответов из AIMP2- 2.6.0.499 rc1.ini в AIMP2.ini, иначе он не подцепится.

Скрипт будет дорабатываться, а код скрипта - оптимизироваться.
Сборка с TOOLS и файлом ответов, размер 6.3 метра(так, чтобы поиграться. Что в неё включать, а что нет - решу позднее, после плотного знакомства с новой версией.):http://files.mail.ru/VN8AD5

hb860 10-09-2009 23:48 1216178

Цитата:

Цитата hb860
-в файле ответов пока нельзя указать папку, куда ставить программу, в режиме генератора она не сохраняется. »

Вот это исправлено. НСИС, как оказалось, не понимает %systemdrive% и т.п. Так что пути в файле ответов абсолютные. Буду писать автозамену, как реализовать, пока не знаю. Собственно, не я один этим грешен, некоторые инсталлшилды тоже сохраняют абсолютные пути. Вобщем, возможность указать папку, отличную от Program files\aimp2, теперь есть.

XCV 11-09-2009 09:50 1216369

hb860 добавь плиз в Section Uninstall строчку:
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.lnk"

PS: сделал сборку на основе этого скрипта, если кому интересно можете взять заценить:
http://xcv.my1.ru/forum/5-4-124-16-1252651537

conductor 15-09-2009 01:20 1219174

XCV
ага на торрентс сру уже выложили
а чё не сам ?

XCV 24-09-2009 13:46 1226416

да нет нормального канала....

Fantomas25 13-10-2009 13:07 1241693

Помогите разбраться не могу скомпилировать все время выдает ошибку

ниже привожу листниг компиляции
читать дальше »

MakeNSIS v2.45 - Copyright 1995-2009 Contributors
See the file COPYING for license details.
Credits can be found in the Users Manual.

Processing config:
Processing plugin dlls: "C:\Program Files\NSIS\Plugins\*.dll"
- AdvSplash::show
- Banner::destroy
- Banner::getWindow
- Banner::show
- BgImage::AddImage
- BgImage::AddText
- BgImage::Clear
- BgImage::Destroy
- BgImage::Redraw
- BgImage::SetBg
- BgImage::SetReturn
- BgImage::Sound
- Dialer::AttemptConnect
- Dialer::AutodialHangup
- Dialer::AutodialOnline
- Dialer::AutodialUnattended
- Dialer::GetConnectedState
- InstallOptions::dialog
- InstallOptions::initDialog
- InstallOptions::show
- LangDLL::LangDialog
- Math::Script
- NSISdl::download
- NSISdl::download_quiet
- Splash::show
- StartMenu::Init
- StartMenu::Select
- StartMenu::Show
- System::Alloc
- System::Call
- System::Copy
- System::Free
- System::Get
- System::Int64Op
- System::Store
- TypeLib::GetLibVersion
- TypeLib::Register
- TypeLib::UnRegister
- UserInfo::GetAccountType
- UserInfo::GetName
- UserInfo::GetOriginalAccountType
- VPatch::GetFileCRC32
- VPatch::GetFileMD5
- VPatch::vpatchfile
- nsDialogs::Create
- nsDialogs::CreateControl
- nsDialogs::CreateItem
- nsDialogs::CreateTimer
- nsDialogs::GetUserData
- nsDialogs::KillTimer
- nsDialogs::OnBack
- nsDialogs::OnChange
- nsDialogs::OnClick
- nsDialogs::OnNotify
- nsDialogs::SelectFileDialog
- nsDialogs::SelectFolderDialog
- nsDialogs::SetRTL
- nsDialogs::SetUserData
- nsDialogs::Show
- nsExec::Exec
- nsExec::ExecToLog
- nsExec::ExecToStack

!define: "MUI_INSERT_NSISCONF"=""

Changing directory to: "C:"

Processing script file: "C:\AIMP.nsi"

Processed 1 file, writing output:
Error: invalid script: never had OutFile command
Error - aborting creation process


Делаю сборку на основе стабильного релиза AIMP 2.5.1.330 версия скрипта и инсталятора совпадают.
Версия NSIS: 2.45

Думал что может быть дело в винде в том что нельзя убрать атрибут "только чтение" - но тестировал и на другой машине и другой винде таже самая ошибка.

Скрипт скопипастил и создал notepad++ файл: AIMP.nsi может тут что-то сделал не правильно?

Может кто-нибудь выложить файл скрипта для версии 2.5.1.330?

В чем может быть причина?

hb860 13-10-2009 14:01 1241756

А чем, собственно, скрипт из первого сообещния темы не угодил?
Для версии 2.5.1.330 скрипт находится под словами:
Цитата:

Код скрипта(сделал скрытым, ибо занимает много места на экране ):
читать дальше>>

Fantomas25 13-10-2009 15:55 1241845

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

K.A.V. 13-10-2009 16:05 1241849

Fantomas25, выложите ваш скрипт и все ваши файлы (и файлы AIMP'а) в одном архиве

Fantomas25 14-10-2009 13:46 1242568

Вот выкладываю свой архив скрипт в папке находится.

K.A.V. 14-10-2009 16:18 1242715

Вложений: 1
намёком грю, может у вас notepad++ шаманит???

:yahoo:
Fantomas25, где брали файл скрипта?
Ошибка в файле скрипта: файл был сохранён в кодировке ОС MAC

Кодировку я изменил на ОС Win и компиляция прошла, качайте прикреплённый файлик и удачи ;)

P.S.
Ни в коем случае не забываем нажать Полезное сообщение :teeth: :teeth: :teeth:

hb860 14-10-2009 21:17 1243133

Цитата:

Цитата K.A.V.
намёком грю, может у вас notepad++ шаманит??? »

Он не шаманит обычно:) Обычно шаманит пользователь :)
K.A.V., сам кстати в чем скрипты пишешь? Давно хотел спросить./offtopic

K.A.V. 15-10-2009 07:37 1243406

Цитата:

Цитата hb860
Он не шаманит обычно Обычно шаманит пользователь »

ну я уже здесь не знаю, я даже скрины этого редактора не видел :)

Цитата:

Цитата hb860
K.A.V., сам кстати в чем скрипты пишешь? Давно хотел спросить./offtopic »

HM NIS Edit 2.0.1
как только первый раз начал знакомство с NSIS, так и пользуюсь этим редактором...у
же около 4 лет :)

XCV 15-10-2009 10:11 1243483

Цитата:

Цитата K.A.V.
как только первый раз начал знакомство с NSIS, так и пользуюсь этим редактором »

помоему других нормальных и нет больше... покрайней мере я не встречал

Fantomas25 15-10-2009 11:22 1243554

Круто все работает и компилится\инсталится).
Точно дело в кодировке, она стояла по умолчанию я на нее не обратил внимания.
спасибо K.A.V. и hb860.

hb860 07-12-2009 15:53 1288714

Итак, вышла финалка версии 2.60.250. И я доделал скрипт
Изменения:
-поддержка систем NT 6.x
-деинсталлятор снимает ассоциации файлов
-компонентизация исталлятора
-исправлены мелкие ошибки

активно тестирую новый скрипт, если всё ок - вечером выложу его и сборку

Habetdin 07-12-2009 16:00 1288724

Цитата:

Цитата hb860
вечером выложу его и сборку »

А Readme.txt прочитать? Но скрипт - ждем ;)

Комсомолец 07-12-2009 17:34 1288824

hb860, Артём Измайлов временно запретил сборки.... :(

hb860 07-12-2009 21:18 1288984

Цитата:

Я связался с разработчиком и получил его добро на мой репак, при условии внесения изменений в скрипт. Вношу изменения, и выкладываю сборку и скрипт. "Пожалуйста, подождите" (с) Windows XP
Готово. Шапка обновлена, сборка выложена. СОБЛЮДАЙТЕ ПРАВИЛА ШАПКИ, или я сверну публичную разработку скрипта. Давайте уважать разработчика этой замечательной программы. Да, и плеер сам на себя не ставится, это также пожелание автора программы.

Комсомолец 08-12-2009 02:08 1289187

Цитата:

Цитата hb860
СОБЛЮДАЙТЕ ПРАВИЛА ШАПКИ »

можно подробней об этом?

hb860 08-12-2009 09:08 1289254

Куда уж подробней. Нам разрешили делать сборки для использования при автоматической установке, скрипт должен предупреждать, что плеер уже установлен, если это так, и если скрипт меняется или сборка пересобирается и выкладывается- надо связаться с автором и спросить - а можно ли. В противном случае - нельзя.

hb860 08-12-2009 20:14 1289859

AIMP v2.60 Build 525 (07.12.2009)
Цитата:

* Обновлены локализации
- Исправлено: критическая ошибка в модуле проверки обновлений
- Исправлено: критическая ошибка с записью тегов в некоторые OGG-файлы
- Исправлены прочие мелкие недоработки
Пересоберу

hb860 08-12-2009 23:35 1290056

Пересобрал, заодно немного пофиксил скрипт. Новый скрипт в шапке, сборка там же

hb860 02-01-2010 15:31 1309160

Новая версия 2.60.258 содержит следующие изменения.
- Обновлены локализации
- Исправлено: ошибка с загрузкой некоторых All-In-One обложек
- Исправлено: ошибки в парсере CUE-файлов
- Исправлены прочие мелкие недоработки
Помимо собственных изменений плеера, инсталлятор я тоже доработал. Больше не требуется "ручная" правка файла ответов плеера, + я пофиксил скрипт по мелочи. Работа над ошибками никогда не прекращается :)
Скрипт будет дорабатываться дальше. Идеи не закончились.



Всё в шапке

hb860 12-01-2010 21:22 1318590

AIMP v2.60 Build 530 (05.01.2010)
+ Добавлена возможность переключать треки кликом по трей-иконке
* Обновлены локализации
- Исправлено: ошибки c проигрыванием CUE-файлов
- Исправлено: заикание в начале воспроизведения некоторых файлов
- Исправлены прочие мелкие недоработки

Всё в шапке

kkkisa 13-03-2010 20:13 1367933

Всем привет! Взял с оф. сайта AIMP2-2.6.0.551, перепаковал его скриптом, как написано. В скрипте только номер версии для порядку изменил и !define pkgdir "c:".
Создал файл ответов. Внедрил в автоустановку винды. (пока не набрёл на этот скрипт, после установки винды руками АИМП настраивал, а тут - обрадовался, но...)
Файл ответов подбирается - ставится тема с моим цветом, и иконки файлов, а вот с ассоциациями кака получается:
Лезу в настройки АИМПа, а там галочки стоят напротив АудиоСД справа и некоторых аудиофайлов слева.. Почему-то не стоят напротив
.cda
.ac3
.aif
.ape
.fla
.it
.mid
.mo3
.m4a
.mp2
.wav
.wv
.ogg
(может пару пропустил), хотя в файле ответов они есть и с единичкой. WMP11, внедрённый в дистр не мог как-то помешать? В реестр при автоустановке прописал [HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Preferences]
"AcceptedPrivacyStatement"=dword:00000001 , чтобы WMP не тошнил при первом запуске. Запускаю АИМП сразу после установки винды, до WMP, чтобы привязки файлов посмотреть - а там такое. Люблю, чтобы всё видео крутилось WMP, а аудио - AIMP. Кодеки klcodec510f (я их нечасто обновляю, ибо пару лет назад прокололся, работают - и ладно).

Как бороться, подскажите, пожалуйста?

Это было со скриптом от осени прошлого года. Со свежим примерно то же - ещё и АудиоСД пропали :(

hb860 14-03-2010 11:17 1368232

kkkisa, а на какой программе стоят расширения эти у вас ?
Ну после установки AIMP они открываются чем-то ?

kkkisa 14-03-2010 12:35 1368287

Гм... хороший вопрос.... Я просто первым делом, как винда устанавливается, в АИМП лез, галочки смотреть... Вечером гляну :unsure:

hb860 24-03-2010 22:52 1376439

AIMP2 v2.61.560. Новая версия отличного плеера
В этой версии:
* Обновлены локализации
* Обновлена справка
* Обновлено лицензионное соглашение
* Обновлены библиотеки BASS
* Оптимизирован модуль чтения тегов
- Исправлено: автовыключение компьютера не срабатывало, если назначена пауза между треками
- Исправлено: в некоторых случаях терялось название радиостанции в плейлисте
- Исправлено: ошибки в модуле поддержки расширений функционала
- Исправлено: мелкие недоработки в скин-движке
Ссылка та же, скрипт я НЕ ПЕРЕЗАЛИВАЮ, я не изменял его.
Всё в шапке, словом.
Описание текущей сборки тут

hb860 10-08-2010 19:40 1470969

Тихая установка AIMP v2.61.583
Цитата:

+ Добавлена локализация: Китайский (Традиционный)
* Обновлена компоненты BASS
* Обновлены локализации
* Обновлена справка
- Исправлено: некорректно читается обложка альбома из ID3v2.4
- Исправлено: не обновляется информация в Aero Peek при изменении обложки альбома проигрываемого файла
- Исправлено: не обновляется прогресс воспроизведения на кнопке на панели задач в некоторых случаях
- Исправлено: ошибка с созданием плейлиста при импорте файлов из внешних приложений
- Исправлено: мелкие ошибки
Состав сборки

Скачать

Vitaly_Sigov 22-11-2010 22:45 1549008

Не работает почему то установщик AIMP сключом /S - появляется обычное окно интерауктивной установки.
Уважаемые форумчане, подскажите, пожалуйста, как можно собрать свою сборку AIMP и что для этого нужно, желательно по шагам и доходчиво.

hb860 23-11-2010 15:39 1549535

1. Если вы про мою сборку, то /S должна быть большая. Если нет - то ошибка в оригинальном инсталляторе.
2. Чем плохо то, что я написал в шапке про сборку своего дистрибутива? Если вам непонятно что-то или не дописано по вашему мнению, я допишу.

P.S. Я считаю, у вас нет ни права, ни повода писать мне дубли своих сообщений в почту. Наивно полагать что я брошусь вам отвечать персонально, когда тут представлено 17 страниц обсуждения.

maximum142 29-11-2010 18:26 1554347

Всем привет, подскажите что нужно прописать или исправить, чтобы из папки PlugIns подхватывались другие папки, хочу добавить Enhancer v0.17 с настройками а папка не подхватывается?
читать дальше »

Код:

Section "Плагины" PlugIns
                SectionIn 1
                !insertmacro ProcessSection "PlugIns"
                ;if $r0 is 0 then exit section
                StrCmp $R0 0 EndSection 0
                ;--------------section code----------------                       
                SetOutPath "$INSTDIR\PlugIns"
                File "${pkgdir}\AIMP\PlugIns\*.*"
                ;-------------------------------------------
                EndSection:                       
        SectionEnd


kotkovets 29-11-2010 21:34 1554537

Цитата:

Цитата maximum142
чтобы из папки PlugIns подхватывались другие папки »

Код:

File /r "${pkgdir}\AIMP\PlugIns\*"
C параметром- /r ,подхватится все, что есть в папке PlugIns, включая вложенные папки

maximum142 21-12-2010 13:45 1571203

Вышел AIMP v3.00 Build 810 Beta 1 (20.12.2010)
Список изменений

hb860 21-12-2010 14:51 1571266

Интересно, чем им BASS не угодил

maximum142 21-12-2010 21:25 1571583

hb860,
можно поинтересоваться, скрипт будет переделываться под аимп3 ?

hb860 21-12-2010 23:21 1571667

я не знаю.

Imago_ 22-12-2010 06:32 1571798

Цитата:

Цитата hb860
я не знаю. »

надо-надо :)

kotkovets 16-01-2011 03:25 1589665

Цитата:

Цитата Romy4
чтобы папка с ярлыками в меню Пуск создалась в папке Мультимедиа »

В секции "В меню Пуск" заменить строчку ввида:
$SMPROGRAMS\${PRODUCT_NAME} на:
Код:

CreateDirectory "$SMPROGRAMS\Mультимедиа"
CreateShortCut  "$SMPROGRAMS\Mультимедиа\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
CreateShortCut  "$SMPROGRAMS\Mультимедиа\${PRODUCT_NAME} Advanced Tag Editor.lnk" "$INSTDIR\AIMP2t.exe"
CreateShortCut  "$SMPROGRAMS\Mультимедиа\${PRODUCT_NAME} Audio Converter.lnk" "$INSTDIR\AIMP2c.exe"
CreateShortCut  "$SMPROGRAMS\Mультимедиа\${PRODUCT_NAME} Audio Recorder.lnk" "$INSTDIR\AIMP2r.exe"
CreateShortCut  "$SMPROGRAMS\Mультимедиа\Сайт ${PRODUCT_NAME}.lnk" "http://wwww.aimp.ru"
CreateShortCut  "$SMPROGRAMS\Mультимедиа\Сайт автора сборки.lnk" "http://www.winreview.ru"
CreateShortCut  "$SMPROGRAMS\Mультимедиа\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"

И в секции удаления (Uninstall) на:
Код:

RMDir /r "$SMPROGRAMS\Mультимедиа"

Romy4 16-01-2011 12:40 1589781

Спасибо уже разобрался, только в моём случае это выглядит так:

в секции удаления (Uninstall)

Код:

RMDir /r "$SMPROGRAMS\Мультимедиа\${PRODUCT_NAME}"
иначе папка мультимедия удаляется полностью,

В секции "В меню Пуск"

Код:

CreateDirectory "$SMPROGRAMS\Мультимедиа\${PRODUCT_NAME}"
CreateShortCut  "$SMPROGRAMS\Мультимедиа\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
CreateShortCut  "$SMPROGRAMS\Мультимедиа\${PRODUCT_NAME}\${PRODUCT_NAME} Открыть в редакторе тэгов.lnk" "$INSTDIR\AIMP2t.exe"
CreateShortCut  "$SMPROGRAMS\Мультимедиа\${PRODUCT_NAME}\${PRODUCT_NAME} Конвертировать в AIMP.lnk" "$INSTDIR\AIMP2c.exe"
CreateShortCut  "$SMPROGRAMS\Мультимедиа\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Recorder.lnk" "$INSTDIR\AIMP2r.exe"
CreateShortCut  "$SMPROGRAMS\Мультимедиа\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"


Habetdin 17-01-2011 00:41 1590266

Romy4, лучше так:
Код:

RMDir /r "$SMPROGRAMS\Мультимедиа\${PRODUCT_NAME}"
RMDir "$SMPROGRAMS\Мультимедиа"

Если папка "Мультимедиа" будет пустая, она тоже удалится :)

kkkisa 09-02-2011 10:06 1608253

Всем привет. А та фигня, что я описывал год назад в сообщ. 164, никуда не делась :( После установки винды приходится вручную ассоциации аудиофайлов ставить, иначе они к WMP привязаны. Это несложно :), но... Вчера пересобрал свежую версию AIMPа - то же самое. Что я не так делаю?

cleric1985_n 11-03-2011 23:24 1632820

Корректно ли будет применение данного скрипта для AIMP 3?

wolkow70 24-03-2011 15:53 1642907

1. При создании файла ответов директория установки привязана к букве жесткого диска. Чего как поменять?
2. Выбираю многопользовательскую установку - в файле ответов:

[Sections]
MultiUser=1
Skins=1
Icons=1
StartMenu=1
Desktop=1
QuickLaunch=1

А при установке профиль создается в папке с программой.
Что здесь изменить в скрипте?
StrCmp $MultiUser 1 PerUserCFG OneUserCFG

PerUserCFG:
WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 1
StrCpy $ProfilePath "$APPDATA\AIMP"
CreateDirectory "$ProfilePath"
Goto WriteCFG
OneUserCFG:
WriteINIStr "$INSTDIR\DATA\AIMP.INI" System UserMode 0
CreateDirectory "$INSTDIR\DATA\Profile"
Goto WriteCFG
WriteCFG:
SetOutPath "$ProfilePath"
File /nonfatal /r "${pkgdir}\Aimp\Profile\"

kotkovets 24-03-2011 17:22 1642972

Цитата:

Цитата wolkow70
1. При создании файла ответов директория установки привязана к букве жесткого диска. Чего как поменять? »

Суть в чем? так и нужно, напишите в секции Directory ini файла %programfiles% cтрока преобразуется (подменится) на $PROGRAMFILES - т.е на переменную окружения, полный путь к папке PROGRAM FILES текущего компутера
${WordReplace} $R0 "%programfiles%" "$PROGRAMFILES" "+" $R1
Цитата:

Цитата wolkow70
2. Выбираю многопользовательскую установку - в файле ответов »

Все верно, настройки в папке программы - ведь для всех пользователей компутера.
В $APPDATA\AIMP - хранятся для одного текущего пользователя, т.е для однопользовательского режима настройки программы, в папке самой программы, не должно быть то.

fackessfook 13-01-2014 13:04 2288160

не интегрируется!!!
пункт открыть с помощью работает, а вот пункта добавить в AIMP нету


Время: 07:03.

Время: 07:03.
© OSzone.net 2001-