Reputation: 65248
I would like to close all open windows. This will not minimize the windows but the script will close all windows even if it is minimized. Is there a way to do this in a batch program or powershell?
Upvotes: 12
Views: 31251
Reputation: 75
Today I was looking for that too and then wrote an autoit minimal script, send 99 times Keys: Alt F4
install autoit3 www.autoitscript.com/site/autoit/downloads/
short version: file "end.au3"
$loop=99
While $loop
$loop=$loop-1
Send("!{F4}") ; // send Keyboard Alt + F4 = close Window in Windows
WEnd
run it in Autoit Editor with menu > tools > go or run it with F5
long version: make, in same folder as "end.au3" , a "end.exe" file and put on deskt..
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=end.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
ToolTip('au3 close all EXIT ', 0, 0) ;// litle box top left
$loop=99
While $loop
$loop=$loop-1
Send("!{F4}") ;// send Keyboard Alt + F4 = close Window in Windows
WEnd
Exit
Upvotes: 1
Reputation: 60908
use this in powershell:
Get-Process | Where-Object {$_.MainWindowTitle -ne ""} | stop-process
-note: this close powershell console
or ise
too and can't end his job!
(get-process | ? { $_.mainwindowtitle -ne "" -and $_.processname -ne "powershell" } )| stop-process
this way only powershell windows is still alive but the last command in your script can be
stop-process powershell
note: this no affect tray icon minimized process.
EDIT:
to close 'control panel' on xp try this:
(New-Object -comObject Shell.Application).Windows() | where-object {$_.LocationName -eq "Control Panel"} | foreach-object {$_.quit()}
to close all explorer.exe windows:
(New-Object -comObject Shell.Application).Windows() | foreach-object {$_.quit()}
Upvotes: 18