Board logo

标题: [问题求助] [已解决]VBS如何判断是否打开了某文件夹并关闭之? [打印本页]

作者: q115643492    时间: 2011-7-11 11:05     标题: [已解决]VBS如何判断是否打开了某文件夹并关闭之?

本帖最后由 q115643492 于 2011-7-12 10:13 编辑

有一需求,判断是否打开了D盘中的文件夹,比如D:\或D:\a,地址栏为显示全路径。有可能打开了多个满足条件的文件夹。如果打开了,就关闭这些文件夹(不要使用结束explorer)。没有就跳转到下面的操作。有点急用。请好心人帮帮!
思路:
1.获取所有打开的窗体名
2.判断窗体名是否包含D:\字符
3.关闭符合条件的窗体
就是不会写这些代码,还请指点!
作者: wolonga123    时间: 2011-7-11 11:37

为什么不要把exporer.exe kill掉啊??
作者: cjiabing    时间: 2011-7-11 12:09

1# q115643492 这么复杂,看看判断进程标题能否得到了咯
作者: Demon    时间: 2011-7-11 12:46


'Author: Demon
'Website: http://demon.tw
'Date: 2011/7/11
Option Explicit
Dim shell, window, path
Set shell = CreateObject("Shell.Application")
For Each window In shell.Windows
    If window = "Windows Explorer" Then
        path =  Mid(window.LocationURL, 9)
        Select Case path
            Case "D:/", "D:/a"
                window.Quit
        End Select
    End If
Next

作者: q115643492    时间: 2011-7-11 12:56

4# Demon

好象没有效果!
作者: Demon    时间: 2011-7-11 13:34

4# Demon

好象没有效果!
q115643492 发表于 2011-7-11 12:56

上面的代码是在Windows 7中测试的,刚刚在Windows 2003中测试了一下,发现和Windows 7不太一样。

Windows 7下窗口可以分成Windows Internet Explorer、Windows Explorer两种,前者是IE窗口,后者是Explorer窗口,但是在Windows 2003中没有作区分,只有Windows Internet Explorer一种窗口,所以上面代码的If条件不成立。

既然这样,就不加If判断了


'Author: Demon
'Website: http://demon.tw
'Date: 2011/7/11
Option Explicit
Dim shell, window, path
Set shell = CreateObject("Shell.Application")
For Each window In shell.Windows
    path =  Mid(window.LocationURL, 9)
    Select Case path
         Case "D:/", "D:/a"
            window.Quit
    End Select
Next

作者: q115643492    时间: 2011-7-11 13:47

6# Demon
恩,这样就可以用了,但是只能关闭d:\和d:\a这2个文件夹。
我的意思是需要判断是否打开了D盘中的文件夹,比如D:\或D:\a,只是举例为这2个文件夹,其实文件夹名可能是未知的,还有可能不只这两个,我的想法是:
1.获取所有打开的窗体名
2.判断窗体名是否包含D:\字符
3.关闭符合条件的窗体
看能不能用代码实现
作者: Demon    时间: 2011-7-11 13:53

6# Demon
恩,这样就可以用了,但是只能关闭d:\和d:\a这2个文件夹。
我的意思是需要判断是否打开了D盘中的文件夹,比如D:\或D:\a,只是举例为这2个文件夹,其实文件夹名可能是未知的,还有可能不只这两个,我的想 ...
q115643492 发表于 2011-7-11 13:47

我很好奇你的VBS到底是什么水平,我的回答到此为止。
作者: q115643492    时间: 2011-7-11 16:06

就是不懂才来问滴撒,不要欺负象我这种菜鸟新手。
不过还是谢谢你的几次回答!
作者: Demon    时间: 2011-7-11 16:28

本帖最后由 Demon 于 2011-7-11 19:20 编辑
就是不懂才来问滴撒,不要欺负象我这种菜鸟新手。
不过还是谢谢你的几次回答!
q115643492 发表于 2011-7-11 16:06

都到这份上了还不会自己改,我也没什么好说的。正如powerbat所说,如果你什么都不懂,请在提问时注明。
作者: broly    时间: 2011-7-11 21:50

本帖最后由 broly 于 2011-7-11 21:52 编辑
上面的代码是在Windows 7中测试的,刚刚在Windows 2003中测试了一下,发现和Windows 7不太一样。

Windows 7下窗口可以分成Windows Internet Explorer、Windows Explorer两种,前者是IE窗口,后者是Explorer窗口 ...
Demon 发表于 2011-7-11 13:34



  1. Select Case path
  2. Case "D:/", "D:/a", "文件夹1", "文件夹2", "以此类推"
  3.   window.Quit
  4. End Select
复制代码

作者: broly    时间: 2011-7-11 23:06

4# Demon

Demon,下次把代码用[CODE] 括起来吧,方便别人复制代码
作者: q115643492    时间: 2011-7-12 10:13

呵呵。谢谢大家,不好意思,费心了!
作者: CrLf    时间: 2011-7-12 11:14

本帖最后由 zm900612 于 2011-7-12 11:15 编辑

批处理的话可以:
  1. move 文件夹 %cd% %cd%>nul||echo %cd%正被使用
复制代码
不知在vbs中如何套用

哦,我看错题意了...
作者: Demon    时间: 2011-7-12 12:30

Select Case path
Case "D:/", "D:/a", "文件夹1", "文件夹2", "以此类推"
  window.Quit
End Select
broly 发表于 2011-7-11 21:50

用[code]括起来如何修改颜色?
作者: broly    时间: 2011-7-12 19:21

15# Demon


你这样修改关键字颜色等虽然也有好处,但是如果代码过长,并不方便别人复制代码。而且,万一碰上基础比较差的,不一定知道哪些是你代码的全部
作者: zhangxinjian    时间: 2012-7-19 20:16

我的win7旗舰版,怎么关不掉文件夹啊
作者: ww0000    时间: 2013-1-21 21:09

回复 11# broly


    能不能先判断再关闭??
作者: czjt1234    时间: 2013-1-22 08:40

回复 18# ww0000


    能啊




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2