1

编写将关闭所有在 nsis 中打开的浏览器的代码。

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

这是行不通的。

给我一些错误。

我正在尝试在 nsis 中编写一个代码,它将关闭所有打开的浏览器并重新打开它们。

4

1 回答 1

0

我得到了答案

Section 
Execwait '"$SYSDIR\taskkill.exe" /F /IM chrome.exe /T'
SectionEnd

我们可以杀死任何任务。

于 2013-08-23T18:00:08.040 回答