С перезапуском окон (пример).
list := list_Text := ""
IF WinExist("ahk_class CabinetWClass") ; explorer
{
for window in ComObjCreate("Shell.Application").Windows
{
explorer_path := ""
try explorer_path := window.Document.Folder.Self.Path
list .= explorer_path ? explorer_path "`n" : ""
list_Text .= explorer_path ? A_Index " " explorer_path "`n" : ""
}
list := trim(list, "`n")
}
; MsgBox, %list%
MsgBox, 4, , %list_Text%`n`nПерезапустить explorer.exe?, 10
IFMsgBox Yes
{
; "убиваются" все процессы имеющие в начале имени "Explorer"
; RunWait, cmd.exe /c Taskkill /f /Im Explorer*,, Hide ; Устарело
RunWait, Taskkill /f /Im Explorer*,, Hide
; Sleep 1000
Process, WaitClose, explorer.exe
; по окончании экзекуции запускается новый экземпляр процесса explorer.exe
; Run cmd.exe /c explorer.exe,,hide
Run, Explorer.exe
If !list
{
Process, wait, explorer.exe
Loop, parse, list, `n
Run %A_LoopField%
}
}
Else
ExitApp