|
q115643492
新手上路

积分 6
发帖 6
注册 2008-5-11
状态 离线
|
『楼 主』:
[已结]判断一个文件夹是否打开
我想求一个脚本:
判断一个文件夹是否打开,如果是打开就执行程序a。如果没有打开就执行程序b.
比如我手动打开c:\1文件夹后,在任务管理器中进程是没有变化的,只会在应用程序里显示,所以不能用进程来判断。看能不能判断任务管理器中的应用程序来达到目的呢?或者其他思路,请高手讨论!
[ Last edited by HAT on 2009-2-14 at 13:16 ]
|
|
2009-2-9 15:49 |
|
|
hhasee
初级用户
 
积分 185
发帖 88
注册 2008-5-12
状态 离线
|
『第
2 楼』:
有同感,再补充一下,如果在DOS下也能判断就更好了,请高手们赐招!
|
|
2009-2-9 16:37 |
|
|
zhengqian529
初级用户
 
积分 100
发帖 93
注册 2009-1-14 来自 湖南
状态 离线
|
『第
3 楼』:
关键在于在哪里获取这个文件夹打开或者关闭状态的信息,
|
|
2009-2-9 16:40 |
|
|
yishanju
银牌会员
     [b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
4 楼』:
windows 下枚举所窗口的TITLE来判断
|

有问题请发论坛或者自行搜索,再短消息问我的统统是SB |
|
2009-2-10 00:10 |
|
|
yishanju
银牌会员
     [b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
5 楼』:
tasklist taskkill 有判断窗口标题的参数,但是我从来就运行成功过
|

有问题请发论坛或者自行搜索,再短消息问我的统统是SB |
|
2009-2-10 00:21 |
|
|
HAT
版主
       
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
6 楼』:
Re 5楼
这个方法只对那些一个应用对应一个进程的情况有效(比如word)。不适用于楼主的问题。
|

 |
|
2009-2-10 00:58 |
|
|
q115643492
新手上路

积分 6
发帖 6
注册 2008-5-11
状态 离线
|
|
2009-2-14 10:35 |
|
|
netbenton
银牌会员
     批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第
8 楼』:
把方法贴出来分亨一下嘛!
|

精简
[你的+我的+他的]=>[大家的] 个人 网志  |
|
2009-2-14 12:52 |
|
|
knoppix7
银牌会员
    
积分 1287
发帖 634
注册 2007-5-2 来自 cmd.exe
状态 离线
|
『第
9 楼』:
那个openfiles命令?...
|
|
2009-2-15 12:12 |
|
|
q115643492
新手上路

积分 6
发帖 6
注册 2008-5-11
状态 离线
|
『第
10 楼』:
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
此帖被 +2 点积分 点击查看详情 评分人:【 HAT 】 | 分数: +2 | 时间:2009-2-15 18:39 |
|
|
|
2009-2-15 18:28 |
|
|
newxso
初级用户
  l i u s s
积分 73
发帖 101
注册 2008-9-17 来自 GZ
状态 离线
|
『第
11 楼』:
代码有误,不成功。可以试试:
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
|
|
2009-2-17 01:40 |
|
|
q115643492
新手上路

积分 6
发帖 6
注册 2008-5-11
状态 离线
|
『第
12 楼』:
Quote: | 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"
|
|
2009-2-17 01:57 |
|
|
everest79
金牌会员
      一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
13 楼』:
这个跟本地文件夹设置有关
如果关闭了在标题栏显示完整路径,那么11楼是可行的,如果打开了,则不行
|

49206C6F766520796F752067757973 54656C3A3133383238343036373837 |
|
2009-2-17 02:59 |
|
|
newxso
初级用户
  l i u s s
积分 73
发帖 101
注册 2008-9-17 来自 GZ
状态 离线
|
『第
14 楼』:
没留意,因为我一直用的系统都是标题栏不显示完整路径的。如下方式就万无一失:
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
|
|
2009-2-17 09:30 |
|
|
everest79
金牌会员
      一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
15 楼』:
不知道wmi能不能枚举explorer的子进程标题
|

49206C6F766520796F752067757973 54656C3A3133383238343036373837 |
|
2009-2-18 02:27 |
|