找回密码
 加入
搜索
查看: 4163|回复: 4

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

[复制链接]
发表于 2009-7-18 18:05:59 | 显示全部楼层 |阅读模式
如何精确定位每个控件,用于controlsend,controlclick?
一个程序,有很多控件,在不同页面,同一类型的控件如edit有多个,它的ID是同的,怎么做到区分呢?
问:一个程序启动多个,里面的控件如何区分?
问:程序每次启动,控件ID都不变的吗?
发表于 2009-7-18 18:37:26 | 显示全部楼层
问:一个程序启动多个,里面的控件如何区分?
以一个窗口为单位的 想办法区分就是

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

评分

参与人数 1金钱 +10 收起 理由
kn007 + 10 感谢你对论坛的支持

查看全部评分

发表于 2009-7-18 18:58:24 | 显示全部楼层
直接定义句柄变量可能方便些吧,对于多窗口应该也适用,句柄应该是唯一的
 楼主| 发表于 2009-7-18 19:02:32 | 显示全部楼层
好。对提出的句柄方法,在学习中。大家有好的方法也贴一点代码来学习一下。
以下是帮助文件的例子:
 楼主| 发表于 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
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-27 11:47 , Processed in 0.080057 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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