PDA

Показать полную графическую версию : Авторам аддонов


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

gora
04-12-2007, 16:11
Сделать, например, GUI с запросом и двумя кнопками "Русский" и "English". »К сожалению модифицированный модуль не предоставляет такой возможности. :( Нужно будет использовать сторонние утилиты для окна (это не проблема) или автоматически, без запроса языка, ставить язык в зависимости от языка системы (русский язык - для русской Windows, английский - для всех остальных). Оба варианта использую в инсталляторе кнопки. Какой вариант Вас устроит?

jameszero
04-12-2007, 16:43
Нужно будет использовать сторонние утилиты для окна »Не хотелось бы усложнять.
Что ж, пока вопрос с выбором языка снимаю. Выложу ваш вариант с русским интерфейсом в своём посте (http://forum.oszone.net/post-599580-153.html)
Английский вариант тоже наверно оставлю, лично я больше привык к CAB-IN, CAB-OUT :)

gora
04-12-2007, 23:08
jameszero, попробовал обойтись без сторонних утилит. Вот что получилось:
интерактивный выбор языка для утилиты SendTo_CAB_tool
деинсталляция её с помощью ключей:
-ai0 (русский язык в контекстном меню)
-ai1 (английский язык в контекстном меню)

Поправил название утилиты Reg2Inf_context_tool (и файлов в ней)

gora
05-12-2007, 10:49
Компилятор аддонов v7.1 (Compiler_Addon).

Предназначен для автоматизации процесса сборки и обновления аддонов со способом интеграции SVCPACK.
Справки пока нет (и нужна ли кому будет как и сам компилятор :dont-know ), так что небольшая инструкция:
1 В папке, где будет создаваться аддон (назовем ее просто - "Addon_example"), должны лежать:
папка <name>
файл Run
файл addon.nfo
файл name.ico
файл name_config.txt
файл name.res
файл Html.nfo (опционально)
файл Required (опционально)
файл Conflict (опционально)
файл nsolid (опционально)

Наличие папки и всех перечисленных файлов (кроме опциональных) обязательно. Названия файлов изменять нельзя кроме слова name. Вместо name нужно будет подставить короткое имя аддона. Что это такое, смотрите ниже.

2 В папку name положите все файлы вашей программы. Назначение файлов: Run, addon.nfo, name.ico, Html.nfo, Required, Conflict - думаю понятно.

3 Файл name_config.txt - обыкновенный файл конфигурации для модифицированного модуля (http://forum.oszone.net/showthread.php?t=51547) от Oleg_Sch с нужными Вам параметрами.

4 Файл name.res - файл "копирайтов" известный пользователям "Кнопки для работы с 7z SFX архивами в ТС (http://forum.oszone.net/lastpostinthread-83838.html)". Кто не знаком с его структурой, посмотрите здесь (http://gora.7zsfx.org/ButtonTC.html). В нем только добавлены несколько строк для работы Compiler_Addon (на примере аддона DeskHedron_1.00_RU):
;fstbildat=06.11.2008
;name=DeskHedr
;fullname=DeskHedron_1.00_RU
;ComprModule=0
;UpDate=0
;Pass=1

Первая строка - дата первого релиза вашего аддона. (опционально)
Вторая строка - как раз тот самый name, который должен быть во всех именах папки и файлов. Имя должно содержать не более 8 символов и не сдержать пробелов! Это будет имя инсталлятора - 7z SFX архива.
Третья строка - полное имя вашего аддона. Имя может содержать любое число символов (в разумных пределах конечно) и не сдержать пробелов! (желательно)
Четвертая строка - режим сжатия модуля (0 - не сжимать, 1 - сжимать) при создании 7z SFX архива. ПОМНИТЕ: сжатие модуля может вызывать ложное срабатывание антивирусов. * Данный параметр начиная с версии 4.5 игнорируется и сжатие модуля отключено!
Пятая строка - режим возможности последующего обновления 7z SFX архива (0 - нельзя обновлять, 1 - можно обновлять). * Данный параметр начиная с версии 7.1 игнорируется
Шестая строка - Режим однопроходного сжатия. Выходной архив аддона будет упакован без сжатия (режим Copy). Полезно для аддонов в несколько десятков МБ и более.

5 Файл nsolid может быть добавлен, если необходимо сделать solid архив, но с возможностью обновления отдельных файлов/папок. Такие файлы/папки нужно перечислить в файле nsolid. Пример:папка1\
папка2\
файл.txt * Начиная с версии 7.1 этот файл игнорируется

Подготовка компилятора.
Компилятор состоит из двух файлов Compiler_Addon.exe и Compiler.ini которые должны лежать рядом (расположение этой пары значения не имеет). Я их положил в папку ТС, рядом с файлами "Кнопки ..." упомянутой выше. Можно расположить их и в другом месте и создать ярлык на панели ТС (как это сделал я), Рабочем столе или другом удобном для Вас месте. В файле Compiler.ini нужно подредактировать пути в архиватору 7-Zip и модифицированному модулю, если они у вас отличаются от моих.

Использование компилятора.
После того как Вы подготовите все описанные в п.1 файлы и папку, перетащить файл name.res (только его и никакой другой!) на этот ярлык компилятора. После этого в указанной папке будет создан полноценный аддон, со всей структурой папок и файлов, запакованный в "транспортировочный" архив и файл инсталлятора для возможности оперативной проверки аддона.
Начиная с версии 7.1:
- файл name.res можно не перетаскивать на ярлык (если он сделан на панели ТС), достаточно просто щелкнуть по ярлыку и аддон будет создан.
- поддерживается режим сжатия LZMA2. Он может быть задан по умолчанию в файле Compiler.ini. Возможно оперативное изменение метода сжатия на альтернативный, удерживанием клавиш <Ctrl>+<Shift> при нажатии на ярлык. Полная аналогия с упомянутой выше "кнопкой".

Как пример прилагаю набор для изготовления упомянутого аддона DeskHedron_1.00_RU.

vek
05-12-2007, 14:09
gora
Извините, немного непонял:
В папку name положите все файлы вашей программы »
т.е. Все файлы установленной программы из %programfiles%? А как же записи в реестр, добавление ярлыков, регистрация библиотек? А если файлы не только в %programfiles%\nameprogram, а где нибудь еще?
P.S. наверное config.txt? Сейчас скачаю посмотрю.

gora
05-12-2007, 14:53
т.е. Все файлы установленной программы из %programfiles%? »
Ну конечно же НЕТ. Файлы программы должны быть подготовлены для этого. Добавлены файлы реестра, файлы, которые копируются при установке в другие директории, дополнительные файлы inf (если требуются). Можете посмотреть вот этот мой аддон ТС (http://forum.oszone.net/post-684220-289.html) там все это предусмотрено. Компилятор подойдет не для всех программ, а лишь для тех которые могут быть установлены через SVCPACK (таких как Miranda, Total Commander, WinFlip и многих других).

vek
05-12-2007, 15:15
gora
Да спасибо большое, я уже посмотрел. Просто сначала смутила фраза о том, что "запихайте файлы в одну папку и будет Вам чудо..:-)", а уже потом увидел механизм установки через config.txt. Извиняюсь за необдуманно написанный, предыдущий пост.

gora
05-12-2007, 15:18
смутила фраза о том, что "запихайте файлы в одну папку и будет Вам чудо..:-)", »Этого я не обещал ;) .

gora
17-12-2007, 10:01
jameszero, очередные вопросы:
1 PROG_1 =miranda32.exe
PROG_2 =miranda32 »
Как быть, если оригинальное имя программы имеет пробел (например, UberIcon Manager.exe) и переименование ее в "беспробельное" имя нежелательно?
2 [Close.Prog]
TASKKILL /F /IM %PROG_1%
TSKILL %PROG_2% »
Эти строки "убивают" процесс, но папка программы не всегда удаляется. В случае с UberIcon в ней остаются всего два файла (UberIcon Manager.exe и UberIcon.dll), но из-за них папка не удаляется. Хотя потом вручную она удаляется спокойно. (Для проверки переименовывал программу в беспробельное имя, но здесь привожу оригинальные имена)
Можно ли это обойти?

jameszero
17-12-2007, 12:11
gora
По первому пункту, должны помочь кавычки, причём тройные
PROG_1 ="""UberIcon Manager.exe"""
PROG_2 ="""UberIcon Manager"""

А по второму пункту, я тоже возился с одной программкой, её не хватало времени выгрузиться из памяти и в итоге папка не удалялась.
Экспериментировал с флагом (http://oszone.net/3827/#exe) RunPreSetupCommands=Close.Prog:5 - не помогло,
вставлял паузу
TASKKILL /F /IM %PROG_1%
TSKILL %PROG_2%
ping -n 1 127.0.0.1
тоже не всегда срабатывало. Вобщем, пока решение не нашёл.

Boa Soft
17-12-2007, 12:27
jameszero, оже не всегда срабатывало. Вобщем, пока решение не нашёл. »

И не сработает. Если только TASKKILL /F /IM Explorer.exe :). Программа ставит хук и он висит в адресном пространстве процесса Explorer. Пока проводник не перегрузится, dll с хуком не освободится.

gora
17-12-2007, 12:47
По первому пункту, должны помочь кавычки, причём тройные
В результате в свойствах ярлыка вижу такую строку: "C:\Program Files\UberIcon\"UberIcon" Manager.exe". Ярлыки соответственно не работают :(. Что еще порекомендуете?
Пока проводник не перегрузится, dll с хуком не освободится. » Так я без перезагрузки проводника удаляю потом папку ручками и все удаляется. В чем фокус!?

PS Вроде удалось добиться удаления папки простым отказом от "принудительного завершения" :) .(удалил ключ /F и сделал TASKKILL /IM %PROG_1%)
Остался первый вопрос в пробелами в имени.

jameszero
17-12-2007, 14:05
gora
"C:\Program Files\UberIcon\"UberIcon" Manager.exe" »
Попробуйте ввести ещё одну переменную, например:
[Strings]
<...>
PROG_1 ="""UberIcon Manager.exe"""
PROG_2 ="""UberIcon Manager"""
PROG_3 =UBERIC~1.EXE
<...>
и соответственно
[PROG.AddShortcut]
<...>
CmdLine =16422,%PROG_DIR%,%PROG_3%
<...>

gora
17-12-2007, 14:43
Попробуйте ввести ещё одну переменную »
Спасибо, помогло. :)
Сухой остаток (что мне помогло):
1 Имя в формате 8.3 для ярлыков и имя в тройных кавычках для остальных мест (по первому вопросу)
2 TASKKILL /IM %PROG_1%
TSKILL %PROG_2%
ping -n 127.0.0.1Удалил ключ /F из первой строки и единицу из третьей. (С единицей у меня и раньше были проблемы, когда пытался делать задержку на этой команде. Она работает, как задержка, если стоит число большее единицы :( ) По умолчанию там 4 (а нам торопиться не куда :) )

gora
04-01-2008, 19:02
jameszero, помогите разобраться. Пробую сделать аддон с установкой из SVCPACK. Делаю на базе 7z SFX архива с возможностью установки на живую систему и столкнулся с проблемой регистрации/дерегистрации библиотеки. Не как не хочет регистрироваться, хотя, если после запуска инсталлятора вручную дать команду regsvr32.exe "C:\Program Files\IEPro\IEPro.dll", все прекрасно работает. Где у меня ошибки!? Файлы конфигурации и .inf прикрепил.

NRG
04-01-2008, 20:22
gora, ее не надо вроде регистрировать...

Drinko
05-01-2008, 03:40
Возможно кодировка IEPro_my.inf не правильная? (т.к. он подхватывается из 7-Zip архива он должен быть в UTF (sfx 7-Zip'a понимает только его))

ЗЫ и небольшая ошибочка в строке
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayName",,%PROG_NAME%"
кавычечки одной не хватает :)

ЗЫЫ и возможно так:

[PROGdll.Register]
16422,%PROG_DIR%,IEPro.dll,1

[PROGdll.UnRegister]
16422,%PROG_DIR%,IEPro.dll

хотя можно обойтись и без PROG_DIR="IEPro" и PROG_NAME="IEPro"
т.д.:

[PROGdll.Register]
16422,"IEPro",IEPro.dll,1

[PROGdll.UnRegister]
16422,"IEPro",IEPro.dll

И далее по тексту...

jameszero
05-01-2008, 13:12
gora
Навскидку:
RegisterDlls не отрабатывает при вызове её через advpack.
Варианта два - использовать установку через setupapi или выполнять регистрацию dll-ки такой конструкцией
[DefaultInstall]
OptionDesc =%PROG_NAME%
Modes =0,1,2,3
AddReg =PROG.AddReg
RunPostSetupCommands =PROGdll.Register


[PROGdll.Register]
regsvr32 /S """%16422%\%PROG_DIR%\IEPro.dll"""

gora
05-01-2008, 14:52
jameszero, спасибо все (и дерегистрация) работает по второму варианту.RegisterDlls не отрабатывает при вызове её через advpack. »А вот это жаль :(.

gora
07-01-2008, 16:16
jameszero, снова к Вам за консультацией.
Можно ли добавлять файлы\папки в %APPDATA% в аддонах типа SYSOC и SVCPACK? Равноценны ли оба типа аддонов в данном случае?




© OSzone.net 2001-2012