109329767 发表于 2009-7-18 18:05:59

如何精确定位每个控件,用于controlsend,controlclick?

如何精确定位每个控件,用于controlsend,controlclick?
一个程序,有很多控件,在不同页面,同一类型的控件如edit有多个,它的ID是同的,怎么做到区分呢?
问:一个程序启动多个,里面的控件如何区分?
问:程序每次启动,控件ID都不变的吗?

rolaka 发表于 2009-7-18 18:37:26

问:一个程序启动多个,里面的控件如何区分?
以一个窗口为单位的 想办法区分就是

问:程序每次启动,控件ID都不变的吗?
基本上都是这样的 但是部分安装程序和一些自建控件会没有也会改变 不过 标准窗体是不会实现这个问题的

netegg 发表于 2009-7-18 18:58:24

直接定义句柄变量可能方便些吧,对于多窗口应该也适用,句柄应该是唯一的

109329767 发表于 2009-7-18 19:02:32

好。对提出的句柄方法,在学习中。大家有好的方法也贴一点代码来学习一下。
以下是帮助文件的例子:

109329767 发表于 2009-7-18 19:02:36

; 找到一个含有文本 "this one" 的记事本窗口并获得其句柄

; 改变窗口匹配模式,使程序支持类别名和句柄
AutoItSetOption("WinTitleMatchMode", 4)

; 获得含有文本 "this one" 的记事本窗口的句柄
$handle = WinGetHandle("classname=Notepad", "this one")
If @error Then
    MsgBox(4096, "错误", "无法找到该窗口")
Else
    ; 直接发送一些文本到该窗口的编辑框中
    ControlSend($handle, "", "Edit1", "AbCdE")
EndIf
页: [1]
查看完整版本: 如何精确定位每个控件,用于controlsend,controlclick?