-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Как подавить запуск браузера ?
Есть скрипт для запуска инсталлятора
Код:
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?
|
Вот это
Код:
;достаем из реестра имя исполняемого файла браузера по умолчанию
$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"
|
Тихо сам с собою я веду беседу
Самое интересное что с оперой тоже работает.
Как еще можно определить $defaultbrowser?
|
katok888, просто не там ищешь.
вот тут умолчальный браузер
Код:
HKEY_CLASSES_ROOT\HTTP\shell\open\command
|
katok888,
Цитата:
Цитата katok888
Вопрос: как грамотно отказаться от использования setup.cmd? »
|
Вместо этого:
Цитата:
Цитата katok888
ControlClick($title, 'Завершение работы мастера установки Alcohol 52%', 'Button2') »
|
taskkill setup.exe...
|
"там" я тоже искал. Просто если Firefox установить браузером по умолчанию через настройки самого Firefox , то указанные "не там" и "там" ветви реестра не меняются ( у меня во всяком случае). А через "Выбор программ по умолчанию" меняются. тоже вариант надо пробовать.
P.S. попробовал убивать процесс инсталлятора в конце установки. Итог: некорректная установка.
|
- Подменяем в реестре путь к умолчальному браузеру на программу пустышку...
- Запускаем setup.exe
- Возвращаем в реестр путь к умолчальному браузеру
|
Если что, извиняюсь - я заметил, что тема давняя... Но на мой взгляд можно сделать лучше:
Код:
$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.
|
Время: 21:28.
© OSzone.net 2001-