Closing ALL Browsers Windows

From NSIS Wiki
Jump to navigationJump to search

Inspired by Closing ALL Internet Explorer Windows I wrote a function that can close all browsers

var hadBrowsers
Function closeAllBrowsers
  FindWindow $0 "IEFrame"
  IntCmp $0 0 0 closeAll
  FindWindow $0 "MozillaUIWindowClass"
  IntCmp $0 0 0 closeAll
  FindWindow $0 "Chrome_WidgetWin_0"
  IntCmp $0 0 done closeAll
  closeAll:
  MessageBox MB_OK "Please close your browsers or press ok to close them all automatically"
  ;Closing all IE Windows
  loop:
    FindWindow $0 "IEFrame"
    IntCmp $0 0 skipIE
    IsWindow $0 0 skipIE
    System::Call 'user32::PostMessageA(i,i,i,i) i($0,${WM_CLOSE},0,0)'
    StrCpy $hadBrowsers "1"
    skipIE:
    FindWindow $0 "MozillaUIWindowClass"
    IntCmp $0 0 skipFF
    IsWindow $0 0 skipFF
    System::Call 'user32::PostMessageA(i,i,i,i) i($0,${WM_CLOSE},0,0)'
    StrCpy $hadBrowsers "1"
    skipFF:
    FindWindow $0 "Chrome_WidgetWin_0"
    IntCmp $0 0 skipGC
    IsWindow $0 0 skipGC
    System::Call 'user32::PostMessageA(i,i,i,i) i($0,${WM_CLOSE},0,0)'
    StrCpy $hadBrowsers "1"        
    skipGC:
    FindWindow $0 "IEFrame"
    IntCmp $0 0 0 wait
    FindWindow $0 "MozillaUIWindowClass"
    IntCmp $0 0 0 wait
    FindWindow $0 "Chrome_WidgetWin_0"
    IntCmp $0 0 done wait
  wait:
    Sleep 100
    goto loop
  done:
  ;MessageBox MB_OK $hadBrowsers
  StrCmp $hadBrowsers "1" 0 +1        
    Sleep 2000
FunctionEnd