Цитата МИШАНЧИК:
cmd2[pn]=['TASKKILL.EXE /F /IM IEXPLORE.EXE'];
cmd3[pn]=['TASKKILL.EXE /F /IM MusicStudio3.EXE']; >
|
В подобных ситуациях проще установку делать посредством AutoIt скрипта (autoit-ashampoo.au3):
Простой вариант (если процесс ashampoo.exe завершается до открытия браузера):
Код:

$defaultbrowser = RegRead ('HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet','')
RunWait ( @ScriptDir & '\ashampoo.exe /s' )
RunWait ( @Comspec & ' /C taskkill.exe /F /IM MusicStudio3.EXE /IM ' & $defaultbrowser, '', @SW_HIDE )
RunWait ('regedit /S "' & @ScriptDir & '\Ashampoo.reg"', '', @SW_HIDE )
Более хитрый вариант (если ashampoo.exe висит в памяти до закрытия процесса браузера):
Код:

;читаем из реестра имя процесса браузера по умолчанию (описано в AutoIt FAQ: раздел Отлов "случайных" окон, пункт 4)
$defaultbrowser = RegRead ('HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet','')
Dim $processes[2] = [$defaultbrowser, "MusicStudio3.EXE"] ; массив процессов для "убийства"
;установка в тихом режиме
AdlibEnable ("_CloseProcesses",2000)
RunWait ( @ScriptDir & '\ashampoo.exe /s' )
AdlibDisable()
;импорт reg-файла
RunWait ('regedit /S "' & @ScriptDir & '\Ashampoo.reg"', '', @SW_HIDE )
Func _CloseProcesses()
For $process In $processes
If ProcessExists($process) Then
ProcessClose($process)
ProcessWaitClose($process)
EndIf
Next
EndFunc
Далее скрипт компилируется и из WPI юзается так:
Код:

cmd1[pn]=['%cdrom%\\Soft\\autoit-ashampoo.exe'];
В кач-ве альтернативы можно исп-ть cmd-файл (ashampoo.cmd):
Код:

start "Install" /wait "%~dp0ashampoo.exe" /s
rem rem !ВАЖНО! - в кач-ве разделителя нужно указать только символ табуляции
rem (ASCII-код символа после знака "равно" в выделенном фрагменте должен быть 09)
for /f "tokens=3 delims= " %%j in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet /ve') do set defbrowser=%%j
taskkill /F /IM MusicStudio3.EXE /IM %defbrowser%
regedit /s "%~dp0Ashampoo.reg"
Использование из WPI:
Код:

cmd1[pn]=['%cdrom%\\Soft\\ashampoo.cmd'];
P.S. Конкретно на Ashampoo я все это не проверял, но я описал возможные варианты решения для любых приложений, установщики которых ведут себя подобным образом.