Board logo

标题: [已结]判断一个文件夹是否打开 [打印本页]

作者: q115643492     时间: 2009-2-9 15:49    标题: [已结]判断一个文件夹是否打开

我想求一个脚本: 判断一个文件夹是否打开,如果是打开就执行程序a。如果没有打开就执行程序b. 比如我手动打开c:\1文件夹后,在任务管理器中进程是没有变化的,只会在应用程序里显示,所以不能用进程来判断。看能不能判断任务管理器中的应用程序来达到目的呢?或者其他思路,请高手讨论! [ Last edited by HAT on 2009-2-14 at 13:16 ]

作者: hhasee     时间: 2009-2-9 16:37
有同感,再补充一下,如果在DOS下也能判断就更好了,请高手们赐招!

作者: zhengqian529     时间: 2009-2-9 16:40
关键在于在哪里获取这个文件夹打开或者关闭状态的信息,

作者: yishanju     时间: 2009-2-10 00:10
windows 下枚举所窗口的TITLE来判断

作者: yishanju     时间: 2009-2-10 00:21
tasklist taskkill 有判断窗口标题的参数,但是我从来就运行成功过

作者: HAT     时间: 2009-2-10 00:58    标题: Re 5楼

这个方法只对那些一个应用对应一个进程的情况有效(比如word)。不适用于楼主的问题。

作者: q115643492     时间: 2009-2-14 10:35
谢谢!问题已经解决,结帖吧1

作者: netbenton     时间: 2009-2-14 12:52
把方法贴出来分亨一下嘛!

作者: knoppix7     时间: 2009-2-15 12:12
那个openfiles命令?...

作者: q115643492     时间: 2009-2-15 18:28
Dim objws,folders Set objws=WScript.CreateObject("wscript.shell") folders="c:\1" strfolder=Split(folders,";",-1,1) For Each f In strfolder If objws.AppActivate(f)=True Then objws.run "c:\1.txt" Else objws.run "c:\2.txt" End If Next

作者: newxso     时间: 2009-2-17 01:40
10楼
代码有误,不成功。可以试试:
Dim WshShell,FolderTitle
Set WshShell=WScript.CreateObject("Wscript.Shell") 
FolderTitle="test"
If WshShell.AppActivate(FolderTitle)=True Then 
   WshShell.run "c:\test\a.txt" 
Else 
   WshShell.run "c:\test\b.txt"
End If 

作者: q115643492     时间: 2009-2-17 01:57
Originally posted by newxso at 2009-2-17 01:40 AM: 代码有误,不成功。可以试试: [code] Dim WshShell,FolderTitle Set WshShell=WScript.CreateObject("Wscript.Shell") FolderTitle="test" If WshShell.AppActivate( ...
这个我试了,运行正常啊 test打开则执行c:\test\a.txt test没打开则执行c:\test\b.txt 你再试试啊,是VBS脚本,不是BAT。如果还是不行,请把 FolderTitle="test" 这里设置全路径,如FolderTitle="c:\test"

作者: everest79     时间: 2009-2-17 02:59
这个跟本地文件夹设置有关 如果关闭了在标题栏显示完整路径,那么11楼是可行的,如果打开了,则不行

作者: newxso     时间: 2009-2-17 09:30
没留意,因为我一直用的系统都是标题栏不显示完整路径的。如下方式就万无一失:
Dim WshShell
Set WshShell=WScript.CreateObject("Wscript.Shell") 
If WshShell.AppActivate("test")=True or WshShell.AppActivate("C:\test")=True Then 
   WshShell.run "c:\test\a.txt" 
Else 
   WshShell.run "c:\test\b.txt"
End If

作者: everest79     时间: 2009-2-18 02:27
不知道wmi能不能枚举explorer的子进程标题