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

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-файлов. Выложенные примеры кода неоднократно проверены и применяются в моих аддонах, а на их работоспособность, как правило, рекламаций не поступает.

kert
26-01-2010, 10:03
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-ом запуске тут же создает этот файл в указанном месте, естественно с настройками по умолчанию. Может какие то ключи нужны? Подскажите пожалуйста.

gora
17-02-2010, 12:20
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, но если я хочу использовать его в не зависимости от пака (как настроенный инсталятор), то как быть?

Amigos
18-03-2010, 11:45
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.

Может кто предложит другие варианты, но они не будут проще (ИМХО).

Взвесьте цели и трудозатраты...
Я бы так извращаться не стал.

mamont1
19-03-2010, 12:45
Гуру аддонов гляньте всё ли правильно
Тест: аддон Arum Switcher (http://forum.oszone.net/post-1372176.html#post1372176)

gora
30-03-2010, 16:38
2 ALL
Компилятор аддонов v7.1 обновлен.

Изменения:
- игнорируется наличие
* файла nsolid
* параметров:
;ComprModule=0
;UpDate=0
- добавлен параметр ;Pass=1
- файл name.res можно не перетаскивать на ярлык (если он сделан на панели ТС), достаточно просто щелкнуть по ярлыку и аддон будет создан.
- поддерживается режим сжатия LZMA2. Он может быть задан по умолчанию в файле Compiler.ini.
- возможно оперативное изменение метода сжатия на альтернативный, удерживанием клавиш <Ctrl>+<Shift> при нажатии на ярлык. Полная аналогия с "Кнопкой для работы с 7z SFX архивами в ТС (http://buttontc.7zsfx.info)".
- оптимизация окон компилятора и процесса создания аддона

Подробности в посте, ссылка на пост в шапке.

liben
30-03-2010, 20:37
нужна ли кому будет как и сам компилятор »Нужен компилятор! Незаменимый инструмент. Все мои аддоны создавались именно с использованием Вашего, gora, компилятора аддонов.




© OSzone.net 2001-2012