Войти

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


nikv2005
14-03-2006, 17:56
Есть файл runonceex следующего содержания:
cmdow @ /HID
@echo off
SET CDROM=%~d0
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D "Configure OS settings" /f
REG ADD %KEY%\005 /VE /D "WinRaR 3.51 rus" /f
REG ADD %KEY%\005 /V 1 /D "%CDROM%\applications\winrar\install.cmd" /f

REG ADD %KEY%\010 /VE /D "Acrobat Reader 7.0.5 rus" /f
REG ADD %KEY%\010 /V 1 /D "%CDROM%\applications\Acrobat_reader\install.cmd" /f

REG ADD %KEY%\015 /VE /D "ACDSee 8.0 rus" /f
REG ADD %KEY%\015 /V 1 /D "%CDROM%\applications\Acdsee8\install.cmd" /f

REG ADD %KEY%\020 /VE /D "K-Lite codecs full" /f
REG ADD %KEY%\020 /V 1 /D "%CDROM%\applications\k-lite\install.cmd" /f

REG ADD %KEY%\025 /VE /D "Symantec antivirus 9" /f
REG ADD %KEY%\025 /V 1 /D "%CDROM%\applications\SAV\install.cmd" /f

REG ADD %KEY%\030 /VE /D "MS Office 2003 sp2" /f
REG ADD %KEY%\030 /V 1 /D "%CDROM%\applications\Office2003\install.cmd" /f

REG ADD %KEY%\035 /VE /D "1C company 7.7.025" /f
REG ADD %KEY%\035 /V 1 /D "%CDROM%\applications\1c\install.cmd" /f

REG ADD %KEY%\040 /VE /D "Fix Regional settings..." /f
REG ADD %KEY%\040 /V 1 /D "%CDROM%\applications\regopts.cmd" /f

EXIT

Файлы install.cmd запускают соответствующие программы
Вот пример одно из них:
cmdow @ /HID
@echo off
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set CDROM=%%i:
start /wait "%cdrom%\APPLICATIONS\Acdsee8\Acdsee8.exe"
exit

Программы представляют собой RAR-SFX архивы следующего содержания:
Например для Acdsee8.exe:
ACDSee.msi,ACDsee_rus.msi,setup.cmd.
ACDsee.msi - сама софтина
Acdsee_rus.msi - руссификатор
setup.cmd- запускает сначало софтину, а потом руссификатор.

Содержимое setup.cmd:
cd /d %temp%\Acdsee8

start /realtime /wait ACDSee_Pro.msi /passive

start /realtime /wait ACDSee_rus.msi /passive

exit

Комментарии sfx архива:
Path=.\%temp%
Setup=%temp%\Acdsee8\setup.bat
Overwrite=1
Silent=1

Проблема в том, что runonce ждет пока архив разархивируется, а потом сразу перескакивает на следующую команду(то, что следует за Acdsee),а то что в архиве запускаться не хочет.
Возможно я некорректно задал параметры SFX? Может кто-нибудь пояснит?
(Лучше с примером) :)

XXXler
14-03-2006, 19:59
Файлы install.cmd запускают соответствующие программы
не легче определить на T-13 букву сидирома и записать RunOnceEx уже готовые пути к файлам sfx архивов.

Содержимое setup.cmd:

cd /d %temp%\Acdsee8
start /realtime /wait ACDSee_Pro.msi /passive
start /realtime /wait ACDSee_rus.msi /passive



Зачем?

достаточно создать sfx архив winrar с таким коментом:

;Запускается последовательно несколько сетапов:
Setup=msiexec /qb-! /i "ACDSee_Pro.msi"
Setup=msiexec /qb-! /i "ACDSee_rus.msi"
TempMode
Silent=1
Overwrite=1

nikv2005
16-03-2006, 15:16
Грабли похоже в winrar-sfx архиве.

В хелпе по винрар 3,51 четко написано, что при извлечении sfx-архива текущей папкой для запуска того, что прописано в Setup=..... является та папка, куда распаковался архив.

Простой пример: Создаю sfx-архив(в него положил только Acdsee.msi) с комментариями:
Setup=Acdsee.msi
Tempmode
Overwrite=1

При запуске этого архива винда говорит:
Извини, не могу найти Acdsee.msi :o :o :o
(по сему мне кажется. надо писать так:
Path=.\%temp%
Setup=%temp%\Acdsee8\Acdsee.msi)
Тогда зачем придуман tempmode :confused:
Может я чего-то не так сделал ????

nikv2005
16-03-2006, 17:04
Грабли похоже в winrar-sfx архиве.

В хелпе по винрар 3,51 четко написано, что при извлечении sfx-архива текущей папкой для запуска того, что прописано в Setup=..... является та папка, куда распаковался архив.

Простой пример: Создаю sfx-архив(в него положил только Acdsee.msi) с комментариями:
Setup=Acdsee.msi
Tempmode
Overwrite=1

При запуске этого архива винда говорит:
Извини, не могу найти Acdsee.msi :o :o :o
(по сему мне кажется. надо писать так:
Path=.\%temp%
Setup=%temp%\Acdsee8\Acdsee.msi)
Тогда зачем придуман tempmode :confused:
Может я чего-то не так сделал ????

maugli
16-11-2006, 14:53
сорри, если не в тему (да и незачем создавать),
подскажите, нужны ли в этом случае в RunOnceEx дополнительные слэши?
т.е. так
REG ADD %KEY%\071 /V 1 /D "%systemdrive%\install\Applications\Sidebar\DesktopSidebar.msi /qn \"REBOOT=ReallySuppress\"" /f
или так
REG ADD %KEY%\071 /V 1 /D "%systemdrive%\install\Applications\Sidebar\DesktopSidebar.msi /qn REBOOT=ReallySuppress" /f
спасибо.




© OSzone.net 2001-2012