首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

如何样关闭所有打开的资源管理器的窗口

2013-07-09 
怎么样关闭所有打开的资源管理器的窗口怎么样关闭所有打开的资源管理器的窗口[解决办法]试试这个:http://b

怎么样关闭所有打开的资源管理器的窗口
怎么样关闭所有打开的资源管理器的窗口
[解决办法]
试试这个:
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


[解决办法]

引用:

我在WIN7 下 方法3不行。方法2可以,但是我要加到程序里处理完后,就进入不到下一步了,就挂掉了。
方法三不行可能是部分隐藏窗口误删了。不知道为什么会获取到那么多句柄,你可以用msgbox sHwndAll看看。 尽量过滤到不相关的窗口,以免误操作。 另外方法2挂掉了是什么现象呢?能定位到具体代码吗?

另外,5楼,下载最新版看看,之前的版本处理不完善,当没有符合条件的窗口会处理出错。

热点排行