Показать полную графическую версию : Авторам аддонов
DyadyaGenya
23-01-2010, 21:55
jameszero, пробовал указать и так
rundll32.exe advpack.dll,LaunchINFSection %17%\%PROG_INF%,Close.Prog1"
специально туда подкладывал нужный инф, пробовал как то указать путь к инф файлу в другом месте
может можно как то пример рабочий, чтоб скажем тот же блокнот, как самый распространенный, закрыть
jameszero
24-01-2010, 12:57
может можно как то пример рабочий »
Ещё раз повторю - код в 578 сообщении (http://forum.oszone.net/post-1328067.html#post1328067) рабочий.
Если нужно наглядно, пожалуйста:
Скопируйте прикреплённый файл в %WinDir%\inf, запустите блокнот (notepad.exe), нажмите Пуск >> Выполнить, введите следующую строчку и нажмите Enter. Блокнот будет закрыт.
rundll32.exe advpack.dll,LaunchINFSection test.inf,DefaultInstall
DyadyaGenya
25-01-2010, 20:39
jameszero, так о том же речь и шла, если батником запустить эту строку, то это много телодвижений, для этого инф файл не обязательно, я в батник запакую саму команду taskkill и все получиться, а вот как средствами одного файла инф это сделать? чтоб сперва одна секция сработал потом другая с нужной командой, ну или сразу одна
я потому сперва и выложил пример с двумя секциями, что думал так правильней если одним файлом делать
jameszero
25-01-2010, 21:27
DyadyaGenya
[Version]
Signature = "$Windows NT$"
[DefaultInstall]
RunPreSetupCommands = Section.advpack
[Section.advpack]
Rundll32.exe advpack.dll,LaunchINFSection test.inf,CommandToRun
[CommandToRun]
RunPreSetupCommands = Close.Prog:1
[Close.Prog]
TASKKILL /F /IM notepad.exe /T
DyadyaGenya
26-01-2010, 00:38
jameszero, скопировал, положил как и перед этим в виндоус/инф и все равно не работает, ложил и в другую папку, не работает
и это как раз то что я пробовал показать в первом примере
jameszero
26-01-2010, 08:23
DyadyaGenya
Не знаю каким образом вы проверяете выполнение INF-файлов. Выложенные примеры кода неоднократно проверены и применяются в моих аддонах, а на их работоспособность, как правило, рекламаций не поступает.
DyadyaGenya, проверел у меня все работает как вы пытаетесь запустить INF файл какой командой
DyadyaGenya
27-01-2010, 20:14
kert, jameszero, сперва копирую содержимое примера в блокнот, сохраняю как инф, ложу и в папку виндоус/инф или в любую другую, жму правой клавишей, выбираю установить и все, ничего не происходит, уже не один инф так проверял, в том то и дело, другие команды почему то срабатывают, запнулся токо с TASKKILL /F /IM notepad.exe /T
и jameszero, я сам не единожды высказывал благодарность за советы, но тут не пойму, могу видео прикрепить :) вроде ж все верно, и даже имя проверял инф файла, думал может не правильно сохраняю, и переписывал содержимое того файла что во вложении, менял его на
[Version]
Signature = "$Windows NT$"
[DefaultInstall]
RunPreSetupCommands = Section.advpack
[Section.advpack]
Rundll32.exe advpack.dll,LaunchINFSection test.inf,CommandToRun
[CommandToRun]
RunPreSetupCommands = Close.Prog:1
[Close.Prog]
TASKKILL /F /IM notepad.exe /T
и все равно, не закрывается, да и мои варианты были в принцыпе такими же, я их много пробовал, разве что секции по другому называл, и знаю что такое :1 в конце строки
и ещё раз повторюсь, твой авторитет заслуженный, я сам часто благодарил за подсказки, но тут не пойму
http://depositfiles.com/files/jdmpw1u1u
jameszero
27-01-2010, 20:56
DyadyaGenya
Ещё раз прочитайте пост 578 (http://forum.oszone.net/post-1328067-578.html). Пункт "Установить" в контекстном меню INF-файлов отабатывает через setupapi.
Могу поделиться твиком, который добавит в контекстное меню оба варианта установки INF-файлов (Install через setupapi и AdvInstall через advpack), плюс аналогичные пункты деинсталляции. Предусмотрена работа только с секциями [DefaultInstall] и [UnInstall] в INF-файлах. Возможна деинсталляция с откатом на стандартный пункт "Установить".
[Version]
Signature=$Windows NT$
[DefaultInstall]
AddReg =REGEntries.AddReg
DelReg =REGEntries.DelReg
[UnInstall]
AddReg =REGEntries.UnAddReg
DelReg =REGEntries.UnDelReg
[REGEntries.AddReg]
HKCR,"inffile\shell\Install1",,0x0,"Install"
HKCR,"inffile\shell\Install1\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %%1"
HKCR,"inffile\shell\Install2",,0x0,"UnInstall"
HKCR,"inffile\shell\Install2\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe setupapi,InstallHinfSection UnInstall 132 %%1"
HKCR,"inffile\shell\Install3",,0x0,"AdvInstall"
HKCR,"inffile\shell\Install3\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe advpack.dll,LaunchINFSection %%1, DefaultInstall,0"""
HKCR,"inffile\shell\Install4",,0x0,"AdvUnInstall"
HKCR,"inffile\shell\Install4\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe advpack.dll,LaunchINFSection %%1, UnInstall,0"""
[REGEntries.DelReg]
HKCR,"inffile\shell\Install"
[REGEntries.UnAddReg]
HKCR,"inffile\shell\Install",,0x0,"&Установить"
HKCR,"inffile\shell\Install\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %%1"
[REGEntries.UnDelReg]
HKCR,"inffile\shell\Install1"
HKCR,"inffile\shell\Install2"
HKCR,"inffile\shell\Install3"
HKCR,"inffile\shell\Install4"
DyadyaGenya
28-01-2010, 00:57
jameszero, как всегда не внимательность, я же этот пример пробовал сам так сделать, а вот влепил выполнение этой строки в батник :rundll32.exe advpack,LaunchINFSection test.inf,DefaultInstall
и все получилось, ведь действительно, я же этот инф не через "установить" буду запускать
спасибо
а твик я этот знал, но пригодился он мне в первые в жизни, ещё раз спасибо
masterchess
17-02-2010, 11:26
gora, сделал простенький аддон. Программа хранит свои настройки в %USERPROFILE%\Application Data в виде ini - файла. Чтобы программа при 1-ом запуске стартовала с моими настройками, в файле конфигурации 7z SFX архива пишу такую строку RunProgram="hidcon:cmd /c Move alarms.ini %USERPROFILE%\\Application Data" При интеграции в дистрибутив с последующей установкой все срабатывает, как задумано. Но при при установке на "живую" систему файл alarms.ini не копируется в %USERPROFILE%\Application Data. Понимаю, что это связано с какими то особыми разрешениями для папок профиля. Сама программа при 1-ом запуске тут же создает этот файл в указанном месте, естественно с настройками по умолчанию. Может какие то ключи нужны? Подскажите пожалуйста.
masterchess
1 Т.к. в пути есть пробелы, то исправьте строку:RunProgram="hidcon:cmd /c Move alarms.ini \"%USERPROFILE%\\Application Data\""
2 Возможная причина в ограничении команды Move. Она может работать только в пределах одного диска. Следовательно папка распаковки должна находиться на одном диске с %USERPROFILE%\Application Data.
3 Для теста можете написать строку так:RunProgram="cmd /k Move alarms.ini \"%USERPROFILE%\\Application Data\"" и увидите в окне консоли, что там "не устраивает систему".
masterchess
17-02-2010, 14:04
gora, спасибо, все получилось! Помогло исправление строки (п.1).
karloson2
18-03-2010, 10:57
Есть вопрос:
Какие файлы аддона (dosnet,run,sysoc) нужно использовать, если программа является исполняемым файлом (*.ехе) и INF упакован в ней же, а аддон использует 3rdParty? Если нужен sysoc, то что в нем прописывать? Для *.cab и *.IN_ все понятно, но как быть с *.ехе?
Я понимаю, что проще пойти по проверенному пути и создать аддон с *.cab, но если я хочу использовать его в не зависимости от пака (как настроенный инсталятор), то как быть?
karloson2, не совсем понятно, что за аддон вы в конечном итоге хотите получить, но может вам поможет структура вот этого аддона [addon] Большой калькулятор [5-BigCalc] (http://forum.oszone.net/thread-154605.html) - с его помощью один exe' шник в процессе инсталяции копируется в c:\WINDOWS\system32\
karloson2
18-03-2010, 13:32
Amigos, Я хочу создать аддон с 3rdParty, но не с CAB и INF файлами, а с ЕХЕ (самораспак. архив).
jameszero
18-03-2010, 13:55
karloson2
Чтобы создать пункт в "компонентах" нужно внести соответствующую строчку в %WinDir%\inf\sysoc.inf
Из EXE это сложно делать, разве что CMD-скриптом парсить содержимое sysoc.inf и вносить туда необходимую запись.
Другой вариант - вносить строчку из файла sysoc, но дополнительно необходимо не текстовом этапе копировать в систему пустышку INF-файла, чтобы не получить сбой установки, а затем пустышку перезаписывать правильным INF-файлом из EXE.
Может кто предложит другие варианты, но они не будут проще (ИМХО).
Взвесьте цели и трудозатраты...
Я бы так извращаться не стал.
Гуру аддонов гляньте всё ли правильно
Тест: аддон Arum Switcher (http://forum.oszone.net/post-1372176.html#post1372176)
2 ALL
Компилятор аддонов v7.1 обновлен.
Изменения:
- игнорируется наличие
* файла nsolid
* параметров:
;ComprModule=0
;UpDate=0
- добавлен параметр ;Pass=1
- файл name.res можно не перетаскивать на ярлык (если он сделан на панели ТС), достаточно просто щелкнуть по ярлыку и аддон будет создан.
- поддерживается режим сжатия LZMA2. Он может быть задан по умолчанию в файле Compiler.ini.
- возможно оперативное изменение метода сжатия на альтернативный, удерживанием клавиш <Ctrl>+<Shift> при нажатии на ярлык. Полная аналогия с "Кнопкой для работы с 7z SFX архивами в ТС (http://buttontc.7zsfx.info)".
- оптимизация окон компилятора и процесса создания аддона
Подробности в посте, ссылка на пост в шапке.
нужна ли кому будет как и сам компилятор »Нужен компилятор! Незаменимый инструмент. Все мои аддоны создавались именно с использованием Вашего, gora, компилятора аддонов.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC