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-08-2009, 22:15
а есть параметры для тихой установки? »
Нет. Вы хотите аддон из него сделать? Можно попробовать...

Magnetio
04-08-2009, 23:21
Да, хотел бы, спасала меня 1оо5оо раз уже.

gora
31-08-2009, 10:43
2 ALL

При написании своих аддонов с использованием в них скриптов Finish, Start и т.д. нужно учитывать следующее:
1 При вызове этих файлов из основного скрипта UpdatePack-а, включены расширения переменной среды с задержкой (SetLocal EnableDelayedExpansion), что может повлиять на корректность выполнения вашего скрипта. Например, такая строка:%WorkDir%\7zr a -mx=9 %WorkDir%\Resources.7z .\%WorkDir%\Resources\ -xr!ntkrpamp.exe\ -xr!rcscriptd.txt -xr!ntkrnlmp.exe\ -xr!rcscriptz.txt -xr!rcscriptx.txt -xr!syssetup.dll\ -xr!ntoc.dll\ >nul вызовет ошибку.
2 Избежать такой ошибки можно применив команду SetLocal DisableDelayedExpansion в своем скрипте. Не следует забывать, что при выходе из вашего скрипта Вы обязаны все восстановить в исходное состояние, т.е., снова применить команду SetLocal EnableDelayedExpansion, дабы, не нарушить работу остальных аддонов и самого скрипта UpdatePack-а
3 По непонятным пока причинам работа с GUI интегратором отличается от работы скрипта UpdatePack-а в плане включения расширения переменной среды с задержкой и, приведенная выше строка в нем работает. Это различие может стать причиной корректной работы вашего аддона при одном способе интеграции и некорректной при другом.

Учитывайте эти обстоятельства при разработке и тестировании своих аддонов!

Vitaliy21
17-09-2009, 21:08
Всем привет, есть проблемка, хочу добавить OEM ярлик в меню пуск, от для запуска одной програмки.

Основываясь на статье http://www.oszone.net/6477

Хочу сделать SFX-архив который можно былоб использовать как аддон для интеграции через SVCPACK.

Но проблема в том, что не знаю как правильно прописать в файл конфигурации эту команду запуска: RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 <полный путь к inf-файлу>\factory.inf

gora
17-09-2009, 21:44
не знаю как правильно прописать в файл конфигурации эту команду запуска: »
Для 7z SFX архива, например, так:RunProgram="rundll32 advpack,InstallHinfSection полный_путь_к_inf_файлу\\factory.inf,DefaultInstall,0" полный_путь_к_inf_файлу без пробелов и слеши удваиваются.

Vitaliy21
17-09-2009, 22:41
gora, попробовал вот так:

;!@Install@!UTF-8!
GUIMode="2"
InstallPath="%WINDIR%\\System32"
RunProgram="hidcon:cmd /c copy factory.inf %WINDIR%\\INF"
RunProgram="rundll32 advpack,InstallHinfSection \\factory.inf,DefaultInstall,0"
;!@InstallEnd@!

При запуске SFX архива вылазит ошибка:

http://s53.radikal.ru/i139/0909/84/d85e0c9dd522.jpg

что не так?

gora
17-09-2009, 22:52
Vitaliy21, попробуйте так:;!@Install@!UTF-8!
GUIMode="2"
InstallPath="%WINDIR%\\System32"
RunProgram="hidcon:cmd /c Move factory.inf %WINDIR%\\INF"
RunProgram="rundll32 advpack,LaunchINFSection factory.inf,DefaultInstall,0"
;!@InstallEnd@!

Vitaliy21
17-09-2009, 23:15
Спасибо, заработало...

Vitaliy21
24-09-2009, 00:58
У меня еще такой вопрос.
А именно по аддонам такие как [addon] Drive Space Indicator (http://forum.oszone.net/thread-132205-12.html) и Служебные - [addon+live+конструктор] Дополнительные апплеты панели управления (http://forum.oszone.net/thread-106515-62.html). Мне интересно чем автор prokazzza запаковывал установочные файлы в инсталятор которые потом копировались в SVCPACK?

Просто мне нужно один такой аддон, такого типа установки перепаковать, а уж точно они небыли запакованы кнопкой TC. :)

Jekson07
24-09-2009, 01:26
Vitaliy21, Inno Setup (http://www.jrsoftware.org/isdl.php)

DyadyaGenya
11-10-2009, 01:22
когда то задавал вопрос почему не всегда прекращается процесс удаляемой софтинки командой :
TASKKILL /IM %PROG_1%
TSKILL %PROG_2%

к сожалению советы разобраться с именами процессов и вставка задержки с помощью команды запускающей пинг результатов не дали. недавно решил почитать справку про эту команду, ведь это системная утилитка, и здесь ответ нашелся сам собой, для таких же ленивых как я вставил здесь справку:
C:\Documents and Settings\DyadyaGenya>taskkill -?

TASKKILL [/S <система> [/U <пользователь> [/P [<пароль>]]]]
{ [/FI <фильтр>] [/PID <процесс> | /IM <образ>] } [/F] [/T]

Описание:
Эта команда позволяет завершить один или несколько процессов.
Процесс может быть завершен по имени образа или по идентификатору процесса.

Список параметров:
/S <система> Подключаемый удаленный компьютер.

/U [<домен>\]<пользователь> Пользовательский контекст, в котором
должна выполняться эта команда.

/P <пароль> Пароль для этого пользовательского контекста.

Запрашивает пароль, если он не задан.

/F Принудительное завершение процесса


/FI <фильтр> Отображение задач, отвечающих
указанному в фильтре критерию.

/PID <процесс> Идентификатор процесса, который требуется
завершить.

/IM <образ> Имя образа процесса, который требуется
завершить. Для указания всех процессов
можно использовать символ шаблона '*'.

/T Завершение указанного процесса
и всех его дочерних процессов.

/? Вывод справки по использованию.

Фильтры:
Имя фильтра Допустимые операторы Допустимые значения
----------- -------------------- -------------------
STATUS eq, ne RUNNING | NOT RESPONDING
IMAGENAME eq, ne Имя образа
PID eq, ne, gt, lt, ge, le Значение PID
SESSION eq, ne, gt, lt, ge, le Номер сессии
CPUTIME eq, ne, gt, lt, ge, le Время CPU в формате
hh:mm:ss.
hh - часы,
mm - минуты, ss - секунды
MEMUSAGE eq, ne, gt, lt, ge, le Использование памяти в КБ
USERNAME eq, ne Имя пользователя в формате
[<домен>\]<пользователь>
MODULES eq, ne Имя DLL
SERVICES eq, ne Имя службы
WINDOWTITLE eq, ne Заголовок окна

Примечание: Символ '*' для параметра /IM применим только совместно с фильтрами.

Примечание: Завершение удаленных процессов всегда будет принудительным,
независимо от того, был ли использован параметр /F или нет.

Примеры:
TASKKILL /S <система> /F /IM notepad.exe /T
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM notepad.exe /IM mspaint.exe
TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
TASKKILL /S <система> /U <домен>\<пользователь> /FI "USERNAME ne NT*" /IM *
TASKKILL /S <система> /U <пользователь> /P <пароль> /FI "IMAGENAME eq note*"

получается всего навсего надо было добавить для надежности пару параметров, и вот в таком виде срабатывает даже без задержек:
TASKKILL /F /IM %PROG_1% /T

кстати, в руководстве дается почти такой пример, только без /T
а в моих предыдущих сообщениях видимо не заметили отсутствие параметра /F потому и не смогли мне подсказать ошибку

Vitaliy21
Мне интересно чем автор prokazzza запаковывал установочные файлы »
есть простой способ узнать, нажав правой клавишей мышки на файле и глянуть в свойствах/версия/комментарий

gora
27-10-2009, 11:35
Небольшая шпаргалка для авторов SVCPACK аддонов, использующих 7z SFX архивы на базе модифицированного модуля (http://forum.oszone.net/showthread.php?t=51547).
Переменные отсортированы по значению переменной в алфавитном порядке.

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

================== Системные переменные ====================
SystemDrive= C:
- HOMEDRIVE= C:
ALLUSERSPROFILE= C:\Documents and Settings\All Users
USERPROFILE= C:\Documents and Settings\gora
- APPDATA= C:\Documents and Settings\gora\Application Data
- TEMP= C:\DOCUME~1\gora\LOCALS~1\Temp
- TMP= C:\DOCUME~1\gora\LOCALS~1\Temp
ProgramFiles= C:\Program Files
CommonProgramFiles= C:\Program Files\Common Files
SystemRoot= C:\WINDOWS
windir= C:\WINDOWS
ComSpec= C:\WINDOWS\system32\cmd.exe
Path= C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
- HOMEPATH= \Documents and Settings\gora
COMPUTERNAME=PENTUX
FP_NO_HOST_CHECK=NO
- LOGONSERVER=\\PENTUX
- NUMBER_OF_PROCESSORS=1
- OS=Windows_NT
* PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
- PROCESSOR_ARCHITECTURE=x86
- PROCESSOR_IDENTIFIER=x86 Family 6 Model 23 Stepping 7, GenuineIntel
- PROCESSOR_LEVEL=6
- PROCESSOR_REVISION=1707
PROMPT=$P$G
- USERDOMAIN=PENTUX
- USERNAME=gora

================== Переменные, существующие только при использовании модуля ====================
7zSfxFolder35= C:\Documents and Settings\All Users\Application Data
7zSfxFolder22= C:\Documents and Settings\All Users\Главное меню
7zSfxFolder23= C:\Documents and Settings\All Users\Главное меню\Программы
7zSfxFolder24= C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка
7zSfxFolder47= C:\Documents and Settings\All Users\Главное меню\Программы\Администрирование
7zSfxFolder46= C:\Documents and Settings\All Users\Документы
CommonDocuments= C:\Documents and Settings\All Users\Документы
7zSfxFolder55= C:\Documents and Settings\All Users\Документы\Мои видеозаписи
7zSfxFolder54= C:\Documents and Settings\All Users\Документы\Мои рисунки
7zSfxFolder53= C:\Documents and Settings\All Users\Документы\Моя музыка
7zSfxFolder31= C:\Documents and Settings\All Users\Избранное
7zSfxFolder25= C:\Documents and Settings\All Users\Рабочий стол
CommonDesktop= C:\Documents and Settings\All Users\Рабочий стол
7zSfxFolder45= C:\Documents and Settings\All Users\Шаблоны

- 7zSfxFolder40= C:\Documents and Settings\gora
7zSfxFolder26= C:\Documents and Settings\gora\Application Data
7zSfxFolder33= C:\Documents and Settings\gora\Cookies
7zSfxFolder28= C:\Documents and Settings\gora\Local Settings\Application Data
- 7zSfxFolder59= C:\Documents and Settings\gora\Local Settings\Application Data\Microsoft\CD Burning
7zSfxFolder34= C:\Documents and Settings\gora\Local Settings\History
7zSfxFolder32= C:\Documents and Settings\gora\Local Settings\Temporary Internet Files
7zSfxFolder19= C:\Documents and Settings\gora\NetHood
7zSfxFolder27= C:\Documents and Settings\gora\PrintHood
7zSfxFolder08= C:\Documents and Settings\gora\Recent
7zSfxFolder09= C:\Documents and Settings\gora\SendTo
7zSfxFolder11= C:\Documents and Settings\gora\Главное меню
7zSfxFolder02= C:\Documents and Settings\gora\Главное меню\Программы
7zSfxFolder07= C:\Documents and Settings\gora\Главное меню\Программы\Автозагрузка
7zSfxFolder06= C:\Documents and Settings\gora\Избранное
7zSfxFolder05= C:\Documents and Settings\gora\Мои документы
MyDocs= C:\Documents and Settings\gora\Мои документы
MyDocuments= C:\Documents and Settings\gora\Мои документы
- 7zSfxFolder39= C:\Documents and Settings\gora\Мои документы\Мои рисунки
- 7zSfxFolder13= C:\Documents and Settings\gora\Мои документы\Моя музыка
- 7zSfxFolder00= C:\Documents and Settings\gora\Рабочий стол
7zSfxFolder16= C:\Documents and Settings\gora\Рабочий стол
UserDesktop= C:\Documents and Settings\gora\Рабочий стол
7zSfxFolder21= C:\Documents and Settings\gora\Шаблоны
7zSfxFolder38= C:\Program Files
7zSfxFolder43= C:\Program Files\Common Files
7zSfxFolder36= C:\WINDOWS
7zSfxFolder20= C:\WINDOWS\Fonts
7zSfxFolder56= C:\WINDOWS\resources
7zSfxFolder37= C:\WINDOWS\system32
7zSfxFolder41= C:\WINDOWS\system32

Примечание:
1 Переменные, помеченные знаком "-" в начале строки, не существуют на Т13
2 Пользователя (в приведенном примере "gora") на Т13 не существует и вместо него будет использован везде "Default User"
3 Переменная помеченная знаком "*" в начале строки на Т13 имеет немного другое значение (PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS)
4 Переменные, связанные с "железом" компьютера, именем пользователя или компьютера у вас будут иметь другие значения.

masterchess
30-10-2009, 09:54
Осваиваю сейчас создание SVCPACK аддонов, использующих 7z SFX архивы на базе модифицированного модуля, и столкнулся с такой проблемой: в апплете "Установка и удаление программ" панели управления некоторые программы не отображают размер. В файле конфигурации и в inf-файле никаких явных ссылок на размер установленной программы не обнаружил. В чем может быть дело, откуда тогда система берет сведения о размере установленной программы.

jameszero
30-10-2009, 11:41
masterchess
Размер установленной программы определяется по объёму её директории. Если установить небольшую программу например в System32, то и размер будет несколько сотен мегабайт, что вызывает вопросы (http://forum.oszone.net/post-592328.html#post592328).

masterchess
14-12-2009, 12:20
gora, можно ли в файле конфигурации 7Z SFX архива прописать переименование файла? К примеру, в %Windir%\system32 имеется файл "name.abc", его нужно переименовать в "name1.def".

gora
14-12-2009, 12:28
можно ли в файле конфигурации 7Z SFX архива прописать переименование файла? »
Можно, если система разрешит переименовать этот файл.RunProgram="hidcon:cmd /c Ren \"%WINDIR%\\system32\\name.abc\" \"name1.def\""

DyadyaGenya
23-01-2010, 21:25
видимо вылезла наружу моя учёба наскоками и отсутствие так сказать классического образования
встал вопрос (не для аддона, но просто более подходящей темы не нашел) как с помощью инф файла на работающей системе вызвать команду
TASKKILL /F /IM %PROG_1% /T

с помощью батника сделать легко, но красивее инф файлом
по идее в секции DefaultInstall достаточно вызвать через setupapi.dll или advapi.dll выполнение секции с этой командой, но почему то не получается, напр:
[DefaultInstall]
RunPreSetupCommands =Section.advpack

[Section.advpack]
Rundll32.exe advpack.dll,LaunchINFSection program.inf,Close.Prog1 , , 4, 64

[Close.Prog1]
TASKKILL /F /IM %PROG_1% /T

или так:

[DefaultInstall]
Run =Section.setupapi

[Section.setupapi]
Rundll32.exe setupapi.dll, InstallHinfSection Close.Prog1 132 program.inf

[Close.Prog1]
TASKKILL /F /IM %PROG_1% /T

пробовал прописать путь к утилите TASKKILL с относительными путями и с явными

jameszero
23-01-2010, 21:42
DyadyaGenya
[Version]
Signature = "$Windows NT$"

[DefaultInstall]
RunPreSetupCommands = Close.Prog

[Close.Prog]
TASKKILL /F /IM %PROG_1% /T

INF-файл необходимо выполнять через advpack.dll, setupapi.dll не сработает.

DyadyaGenya
23-01-2010, 21:45
jameszero, пробовал и так, просто уже думал может надо ещё одну секцию так сказать для выполнения сделать
пробовал явно прописывать программу, название, а не через стринг

jameszero
23-01-2010, 21:52
DyadyaGenya
Приведённый код рабочий.
Если вызывать INF без указания пути к нему, то файл должен находиться в директории WINDOWS\inf, это условие выполняется?

rundll32.exe advpack.dll,LaunchINFSection test.inf,DefaultInstall




© OSzone.net 2001-2012