2012-02-19 2 views
1

Я убиваю процесс, чтобы закрыть chrome.exe, но когда я снова открываю, он говорит, что хром разбился.Как перезапустить браузер Chrome без его разбиения

Я также попытался:

FindWindow $0 "Chrome_WidgetWin_0" 
${If} $0 <> 0 
    SendMessage $0 0x0112 0xF060 0 
${EndIf} 

Но это не похоже на работу

Код NSIS, но он использует WIN32 вызовы (FindWindow, SendMessage).

Благодаря

+2

Конечно, это говорит о том, что Chrome разбился: ** вы разбили его **. Убийство процесса не является стандартным способом закрытия приложения. –

+0

Вы пытались отправить 'WM_CLOSE' (0x0010) вместо' WM_SYSCOMMAND' (0x0112)? – Chris

+0

Также помните, что вы можете открыть несколько вкладок и окон Chrome; использование 'WM_CLOSE' не будет достаточным, чтобы закрыть их. Почему вы все равно пытаетесь убить процессы на компьютере пользователя? –

ответ

4

Чтобы получить правильное окно, которое может быть закрыто с WM_SYSCOMMAND вы можете использовать:

FindWindow $0 "Chrome_WidgetWin_0" "" "" "Chrome_RenderWidgetHostHWND" 
System::Call 'user32::GetParent(i r0)i.s' 
pop $0 

${If} $0 <> 0 
    SendMessage $0 0x0112 0xF060 0 
${EndIf} 

Но, как заметил CodyGray, чтобы установить расширение Chrome вам не нужно перезапустить браузер вообще. Документация находится в Google Chrome Documentation

+1

+1 для правильной работы. –

Смежные вопросы