怎么样关闭所有打开的资源管理器的窗口
怎么样关闭所有打开的资源管理器的窗口
[解决办法]
试试这个:
http://bbs.csdn.net/topics/390488924
[解决办法]
Shell "taskkill /IM explorer.exe",vbHide
[解决办法]
下载最新版v1.8
http://files.cnblogs.com/sysdzw/Windows%E7%AA%97%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96%E6%93%8D%E4%BD%9C%E7%B1%BBforVB6_V1.8.rar
方法1,根据类名得到所有句柄,然后一个个针对句柄处理:
Dim w As New clsWindow
Dim sHwndAll$, v, i%
If w.GetWindowHwndByClassNameEx("CabinetWClass", , sHwndAll, True) > 0 Then 'xp下资源浏览器类名是CabinetWClass
v = Split(sHwndAll, " ") '所有符合条件的窗口句柄的集合
For i = 0 To UBound(v)
w.hWnd = v(i)
w.CloseWindow
Next
End If
方法2,根据类名查找,找到一个关闭一个,直到都关闭,推荐此方法:
Dim w As New clsWindow
Do While w.GetWindowHwndByClassName("CabinetWClass") > 0
w.CloseWindow
Loop
方法3,根据进程名得到所有句柄,然后一个个针对句柄处理:
Dim w As New clsWindow
Dim sHwndAll$, v, i%
If w.GetWindowHwndByAppName("explorer.exe", , sHwndAll, True) > 0 Then 'xp下资源浏览器类名是CabinetWClass
v = Split(sHwndAll, " ") '所有符合条件的窗口句柄的集合
For i = 0 To UBound(v)
w.hWnd = v(i)
If w.Caption <> "" And w.Caption <> "Program Manager" And w.Visible Then '必须可见并且内容不为空不是系统特殊的窗口
w.CloseWindow
End If
Next
End If
[解决办法]
方法三不行可能是部分隐藏窗口误删了。不知道为什么会获取到那么多句柄,你可以用msgbox sHwndAll看看。 尽量过滤到不相关的窗口,以免误操作。 另外方法2挂掉了是什么现象呢?能定位到具体代码吗?
另外,5楼,下载最新版看看,之前的版本处理不完善,当没有符合条件的窗口会处理出错。