求助个正则找控件的问题[已解决]
本帖最后由 z761003 于 2022-1-26 09:57 编辑有个控件类名:AfxWnd42s3 其中的42这个位置有可能是另外1至3个数字,3这个位置有可能是另外1到2个数字,我想写正则给这个类名的控件发送个F1
使用
$Hwnd=WinGetHandle("")
ControlSend( $Hwnd, "", "AfxWnd140s3", "{F1}") ;正确,可以成功
可使用
ControlSend( "{1,3}s{1,2}]", "", "", "{F1}");不成功
不知道问题是出在我正则上,还是出在其它哪里,求大佬帮解下
正则本身我测试过,好像没问题,StringRegExp("AfxWnd42s3", 'AfxWnd{1,3}s{1,2}') 报True {1,3}s{1,2}]改成 {1,3}s{1,2}])试试 ControlSend( "{1,3}s{1,2}]", "", "", "{F1}")这样也没成功 itzyx 发表于 2022-1-26 08:57
{1,3}s{1,2}]改成 {1,3}s{1,2}])试试
帮看看,好像还是不行 使用正则时,如果匹配到不只一个控件,而是多个,它是全每个都发送按钮吗 ControlSend( "{1,3}s{1,2}]", "", "", "{F1}")??????????????????一个问题如楼上所说,正则匹配类名应使用REGEXPCLASS,第二个问题,参数也不对吧,粗心 z761003 发表于 2022-1-26 09:09
帮看看,好像还是不行
额,那个是控件匹配的类名,你没输入控件ID,怎么成功,ControlSend( $Hwnd, "", "{1,3}s{1,2}]", "{F1}") ControlSend( $Hwnd, "", "{1,3}s{1,2}]", "{F1}") 也不行:face (36): tubaba 发表于 2022-1-26 09:12
ControlSend( "{1,3}s{1,2}]", "", "", "{F1}")??????????????????一个问题如楼 ...
能帮我写个正确的吗,我试了也不行 我发现 ControlSend( $Hwnd, "", "", "{F1}") 这个样子都不行 解决了,,ControlSend( $Hwnd, "", "{0,3}s]", "{F1}") 成功
原来不用正则时直接把后面的INSTANCE编号一起带上了,但正则里应该不能带这个,估计 z761003 发表于 2022-1-26 09:56
解决了,,ControlSend( $Hwnd, "", "{0,3}s]", "{F1}") 成功
原来不用正则时 ...
没用正则时输入的是类名+INSTANCE,就像平时常用的 button1 ,edit2 这样子, REGEXPCLASS 是窗口类名 正则表达式用法,没说清楚我以为控件类名就是:AfxWnd42s3 呢 itzyx 发表于 2022-1-26 10:10
没用正则时输入的是类名+INSTANCE,就像平时常用的 button1 ,edit2 这样子, REGEXPCLASS 是窗口类名...
不好意思,不是我没说清楚,而是我对这个不懂,不知道有分别。另外我发现类名CLASS或以前面加REGEXP正则,可INSTANCE或TEXT前面不能加REGEXP正则,好奇怪 我现在使用这句 ControlSend( $Hwnd, "", "{1,3}s;TEXT:HexinScrollWnd2]", "{F1}")可以成功,不过HexinScrollWnd2这里头的2能用啥匹配下么,万一它有时候是其它数字呢:face (7): TEXT 字符一般宜少不宜多,后面的 2 不加就行了,当然如果有多个匹配的控件则需使用其它的条件
ControlSend($Hwnd, "", "", "{F1}")
页:
[1]
2