Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Как подавить запуск браузера ? (http://forum.oszone.net/showthread.php?t=177497)

katok888 06-06-2010 11:50 1428459

Как подавить запуск браузера ?
 
Есть скрипт для запуска инсталлятора
Код:

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 1428534

Вот это
Код:

;достаем из реестра имя исполняемого файла браузера по умолчанию
$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 1428606

Тихо сам с собою я веду беседу
Самое интересное что с оперой тоже работает.
Как еще можно определить $defaultbrowser?

kaster 06-06-2010 15:39 1428623

katok888, просто не там ищешь.
вот тут умолчальный браузер
Код:

HKEY_CLASSES_ROOT\HTTP\shell\open\command

zonderz 06-06-2010 16:01 1428642

katok888,
Цитата:

Цитата katok888
Вопрос: как грамотно отказаться от использования setup.cmd? »

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

Цитата:

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

taskkill setup.exe...

katok888 06-06-2010 17:21 1428699

Цитата:

Цитата kaster
просто не там ищешь »

"там" я тоже искал. Просто если Firefox установить браузером по умолчанию через настройки самого Firefox , то указанные "не там" и "там" ветви реестра не меняются ( у меня во всяком случае). А через "Выбор программ по умолчанию" меняются.
Цитата:

Цитата zonderz
taskkill setup.exe.. »

тоже вариант надо пробовать.

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

Yashied 07-06-2010 16:07 1429412

  • Подменяем в реестре путь к умолчальному браузеру на программу пустышку...
  • Запускаем setup.exe
  • Возвращаем в реестр путь к умолчальному браузеру

Kzer-Za 07-02-2012 09:19 1853367

Если что, извиняюсь - я заметил, что тема давняя... Но на мой взгляд можно сделать лучше:

Код:

$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.

Время: 21:28.
© OSzone.net 2001-