楼主的工作需要频繁切换文件夹,楼主的习惯又很差,经常是一个又一个的 Win+E 然后粘贴路径...于是一个小时下来,打开了 20+ 个窗口,其中有许多是相同的
xp 的关窗口不是很便捷(win7 可以鼠标悬停任务栏,在预览图上中键关闭窗口),所以写了个简单的 vbs,一键逆序关闭相同路径的文件夹- Set Shell = CreateObject("Shell.Application")
- Set Dict = CreateObject("Scripting.Dictionary")
- Set Wins = Shell.Windows
-
- For i=Wins.Count-1 To 0 step -1
- If Instr(LCase(Wins(i).FullName),"\explorer.exe") Then
- If Dict.Exists(Wins(i).LocationURL) Then
- Wins(i).Quit
- Else
- Dict.Add Wins(i).LocationURL,True
- End If
- End If
- Next
复制代码 ---------------------------------------------------------------------------------
题外话:
配合 ahk 的热字符串功能,可以实现在运行窗口输入特定字符串并回车时清理重复窗口,节选相应部分如下:- #IfWinActive, 运行, 请键入程序、文件夹、文档或 Internet 资源的名称,Windows 将为您打开它。
-
- ::cls::
- ::clean::
- Run, "关闭重复窗口.vbs",,,PID
- traytip,, 关闭重复窗口.vbs::%PID%
- return
复制代码 其实纯 ahk 就可以实现,但代码会很庞杂,而且 ahk 的异步运行貌似做得不是很好,有时会卡其他部分的代码。 |