PDA

Показать полную графическую версию : [решено] Как подавить запуск браузера ?


katok888
06-06-2010, 11:50
Есть скрипт для запуска инсталлятора
Case WinExists($title, 'Завершение работы мастера установки Alcohol 52%')
ControlCommand($title, 'Завершение работы мастера установки Alcohol 52%', 'Button4', 'UnCheck'); Run
;ControlCommand($title, 'Завершение работы мастера установки Alcohol 52%', 'Button5', 'UnCheck'); Add Drive
ControlClick($title, 'Завершение работы мастера установки Alcohol 52%', 'Button2')

при нажатии на Button2 происходит запуск браузера. Сейчас это решается запуском сценария из setup.cmd
start /wait /D"%CD%" setup.exe
ping -n 1 -w 1 127.0.0.1
tskill iexplore
tskill opera
tskill firefox
Вопрос: как грамотно отказаться от использования setup.cmd?

katok888
06-06-2010, 13:29
Вот это ;достаем из реестра имя исполняемого файла браузера по умолчанию
$defaultbrowser = RegRead ('HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet','')
;ждем процесс браузера (проверка на наличие процесса в памяти производится каждые 250 мс
;на практике это означает, что окно браузера даже не успеет появиться)
ProcessWait ( $defaultbrowser )
;закрываем процесс браузера
ProcessClose ( $defaultbrowser )
;дожидаемся момента полной выгрузки процесса браузера из памяти (это не обязательно)
ProcessWaitClose ( $defaultbrowser ) работает в случае когда IE- браузер по умолчанию, в случае с Firefox нет :( в реестре все равно [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet]
@="IEXPLORE.EXE"

katok888
06-06-2010, 14:58
Тихо сам с собою я веду беседу
Самое интересное что с оперой тоже работает.
Как еще можно определить $defaultbrowser?

kaster
06-06-2010, 15:39
katok888, просто не там ищешь.
вот тут умолчальный браузер
HKEY_CLASSES_ROOT\HTTP\shell\open\command

zonderz
06-06-2010, 16:01
katok888, Вопрос: как грамотно отказаться от использования setup.cmd? »

Вместо этого:

ControlClick($title, 'Завершение работы мастера установки Alcohol 52%', 'Button2') »

taskkill setup.exe...

katok888
06-06-2010, 17:21
просто не там ищешь »"там" я тоже искал. Просто если Firefox установить браузером по умолчанию через настройки самого Firefox , то указанные "не там" и "там" ветви реестра не меняются ( у меня во всяком случае). А через "Выбор программ по умолчанию" меняются.taskkill setup.exe.. »тоже вариант надо пробовать.

P.S. попробовал убивать процесс инсталлятора в конце установки. Итог: некорректная установка.

Yashied
07-06-2010, 16:07
Подменяем в реестре путь к умолчальному браузеру на программу пустышку...
Запускаем setup.exe
Возвращаем в реестр путь к умолчальному браузеру

Kzer-Za
07-02-2012, 09:19
Если что, извиняюсь - я заметил, что тема давняя... Но на мой взгляд можно сделать лучше:


$defaultbrowser = RegRead ('HKCU\SOFTWARE\Clients\StartMenuInternet','')
if StringLen($defaultbrowser) = 0 Then
$defaultbrowser = RegRead ('HKLM\SOFTWARE\Clients\StartMenuInternet','')
EndIf

ProcessWait ($defaultbrowser)
ProcessClose ($defaultbrowser)
ProcessWaitClose ($defaultbrowser)


Как верно заметил katok888, если Firefox установить браузером по умолчанию через настройки самого Firefox, то он прописывается не в HKLM\SOFTWARE\Clients\StartMenuInternet, а в HKCU\SOFTWARE\Clients\StartMenuInternet. Вышеприведенный скрипт сначала пытается прочитать браузер по умолчанию из HKCU, а если там его нет, то читает значение из HKLM.




© OSzone.net 2001-2012