找回密码
 加入
搜索
查看: 7530|回复: 18

[系统综合] 请教匹配窗口文本的问题

 火.. [复制链接]
发表于 2012-4-24 20:46:40 | 显示全部楼层 |阅读模式
请问下获取某窗口句柄标题可以使用正则,文本参数能吗?
如果不能,那么换行的文本能匹配到吗

例如:

窗口包含文本:
xxx_1
xxx_2
xxx_3

我尝试过 wingethandle("","xxx_1"&@crlf&"xxx_2"&@crlf&"xxx_3") 无效。
还请高人指点,多谢!!!
发表于 2012-4-24 20:59:37 | 显示全部楼层
本帖最后由 user3000 于 2012-4-24 21:28 编辑

窗口匹配可以用正则, 试试:

正则匹配类名:
WinGetHandle("[REGEXPCLASS: xxx_\d]")
正则匹配标题文字:
WinGetHandle("[REGEXPTITLE: xxx_\d]")
发表于 2012-4-24 21:18:13 | 显示全部楼层
回复 1# kxing
好像这个函数不可以只通过“窗口文本”来获取窗口句柄的吧?
发表于 2012-4-24 21:22:24 | 显示全部楼层
本帖最后由 xms77 于 2012-4-24 21:29 编辑

回复 1# kxing
刚刚试了一下,可以只通过窗口文本来得到句柄的,但是窗口文本不支持正则。
发表于 2012-4-24 21:27:09 | 显示全部楼层
回复 4# xms77

打开Scite编辑器直接运行下面代码!
我这可以获取到完整标题及窗口句柄
$title = WinGetTitle("[REGEXPTITLE:.+\.au3]")
$handle = WinGetHandle("[REGEXPTITLE:.+\.au3]")
MsgBox(0, $title, $handle)
发表于 2012-4-24 21:32:28 | 显示全部楼层
回复 5# user3000
3000兄,楼主的意思是要通过窗口文本来获得句柄,可能他相同的窗口标题有多个,只是窗口文本不同,所以他想通过文本来,我试了一下好像窗口文本参数是不支持正则的。

评分

参与人数 1金钱 +10 收起 理由
user3000 + 10

查看全部评分

发表于 2012-4-24 21:39:52 | 显示全部楼层
回复 6# xms77

是哦, 他给出的示例, 条件也是放在了第2个参数中!
是我看错了!
第2个参数不支持正则表达式的!
 楼主| 发表于 2012-4-24 21:41:05 | 显示全部楼层
要正则匹配窗口文本,不是窗口标题。
标题我知道能用正则,但是没看过正则匹配文本。
发表于 2012-4-24 21:41:40 | 显示全部楼层
我也试了,好像窗口文本参数不支持正则。
 楼主| 发表于 2012-4-24 21:43:16 | 显示全部楼层
正因为窗口标题没有特征,因此只能通过窗口文本。
但是一小段文本也不足以确定,因此希望匹配多行文本。
发表于 2012-4-24 21:43:57 | 显示全部楼层
回复 1# kxing

换行的文本能匹配到
经测试, 在记事本打了三行字, 省略标题, 只匹配这3行字, 可以获取到句柄
$title = WinGetTitle('', 111 & @CRLF & 222 & @CRLF & 333)
$handle = WinGetHandle('',111 & @CRLF & 222 & @CRLF & 333)
MsgBox(0, $title, $handle)
发表于 2012-4-24 21:56:17 | 显示全部楼层
回复 10# kxing
楼主不能找到窗口文本的特征文本吗?
发表于 2012-4-24 22:38:54 | 显示全部楼层
我不懂正则,也觉得没有必要这样做,楼主如果怕判断窗口标题加一个窗口文本不严谨,可以楼上可爱的狗狗所说的判断特征文本呀,也可以winwait相关标题的窗口出现,多判断一些控件文本,如果楼主只是抱着研究的态度探讨正则匹配文本,全当我多言
发表于 2012-4-24 23:38:04 | 显示全部楼层
回复 11# user3000

有些窗口文本的换行只有换行符的~
楼主无法匹配可能是这个原因.
GUICreate('aa')
GUICtrlCreateLabel(111 & @LF & 222 & @LF & 333, 10, 10)
GUISetState()

$title = WinGetTitle('', 111 & @CRLF & 222 & @CRLF & 333)
$handle = WinGetHandle('',111 & @CRLF & 222 & @CRLF & 333)
MsgBox(0, $title, $handle)
 楼主| 发表于 2012-4-25 02:47:00 | 显示全部楼层
哎,窗口标题普通,文本内容几乎没有。
除非能用正则窗口文本,否则没有任何意义。
而且这里还涉及到效率问题,尽量能少调用函数就少。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-28 09:16 , Processed in 0.086607 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表