标题: [系统相关] [已解決]批处理如何获取指定进程名的窗口名? [打印本页]
作者: strong12345 时间: 2009-10-6 01:48 标题: [已解決]批处理如何获取指定进程名的窗口名?
进程名 和 窗口名 不一样
最好的例子就是IE
IE的进程名是 iexplore.exe
窗口名称则决定于目前浏览的网页
请问如何在已知进程名的情形下,获取窗口名?
ps.小弟是希望能反覆一直开很多网页,并纪录下每个网页的窗口名称
[ 本帖最后由 strong12345 于 2009-10-17 02:24 编辑 ]
作者: Seter 时间: 2009-10-6 06:33
比较难实现...像TheWorld,2个进程,1个没窗口,1个俩窗口,咋办?
作者: strong12345 时间: 2009-10-6 07:02
那请问有没有办法像tasklist一样,直接显示目前所有窗口名称清单的方法?
作者: rat 时间: 2009-10-6 08:49
原帖由 strong12345 于 2009-10-6 07:02 发表
那请问有没有办法像tasklist一样,直接显示目前所有窗口名称清单的方法?
tasklist /v /fo list|find "窗口标题"
作者: Lumiere 时间: 2009-10-6 10:23 标题: 回复 4楼 的帖子
楼上的list应该是多余的吧?
作者: zqz0012005 时间: 2009-10-6 12:22
不管是何种编程语言,楼主标题中的问题是一个永恒的话题!
涉及到众多API的使用问题,bat是无能为力的。
其实你何必要把范围放大,把问题弄复杂化呢?
explorer.exe、iexplore.exe(包括使用ie核心的浏览器)这两个(其实相当于一个)是比较特别的进程,可以使用Shell.Application的Windows类得到他们的窗口的一些属性。除了这种窗口,堂堂的vbs不用三方组件竟没办法获取窗口标题,实在是一大憾事!
vbs- set sh = CreateObject("Shell.Application")
- set wnds = sh.windows
- for each wnd in wnds
- if InStr(1, wnd.LocationURL, "http", 1) = 1 then wsh.echo wnd.document.title
- next
复制代码
[ 本帖最后由 zqz0012005 于 2009-10-6 15:20 编辑 ]
作者: rat 时间: 2009-10-6 22:35 标题: 回复 6楼 的帖子
貌似用FullName区分IE和资源管理器来得更精准~- tasklist /V /FI "IMAGENAME eq "iexplorE.exe"" /FO list|find "窗口标题"
复制代码
作者: zqz0012005 时间: 2009-10-7 09:55 标题: 回复 7楼 的帖子
没必要区分。
资源管理器也可以直接打开网页(explorer.exe与iexplore.exe是骨肉至亲、骨肉相连)。
不过如果装了IE7它会自动截获,在资源管理器中输入网址会打开ie。
但我这个电脑上(IE6)用命令行的方式运行explorer.exe http://www.bathome.net时会自动用ie打开,只有先打开一个资源管理器窗口,在其中输入网址才是用explorer.exe直接打开。
作者: strong12345 时间: 2009-10-8 11:55
感谢大家告诉了我tasklist /fo list 的方法,小弟已经成功解决问题了
(我以前都不知道能这样显示窗口名 = =a.... 惨)
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |