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

哪个进来帮我解释一下这什么意思

[复制链接]
发表于 2009-10-15 11:46:47 | 显示全部楼层 |阅读模式
本帖最后由 zjg2003 于 2009-10-15 13:56 编辑

ControlClick("请输入用户资料","用户资料","[class:TEdit;INSTANCE:5]")
函数ControlClick 的控件ID写的是:  "[class:TEdit;INSTANCE:5]"   还用了中括号,
不明白什么意思,请哪位给解释一下,
发表于 2009-10-15 12:27:22 | 显示全部楼层
AutoIt v3 的其中一个最优秀的新功能就是提供了直接 操作某些窗口控件的支持. 通常我们在窗口上 能看到的东西大多都是以下控件的一种:按钮,列表框,文本编辑框, 静态文本等. 比如说系统自带的记事本程序的主窗口也不过只是一个相对而言比较大一点的"编辑框(Edit)" 控件罢了!正因为 AutoIt 提供了直接对控件操作的途径,我们再也不需要(也不应该)使用模拟键击等低级的方法来操作窗口了, 这使得需要实现窗口操作的脚本更加可靠.



注意: AutoIt 仅支持标准的 Microsoft 控件 - 有些应用程序(的作者)自己写的自定义控件看起来很像是标准的 MS 控件, 但却无法被脚本程序识别,那就只能靠您的经验判断了,自己试试!



运行 AutoIt 窗口信息工具(AutoIt Window Info) 之后您可以试着把鼠标移动到自己感兴趣的窗口上, 在 Window Info 的窗口就会显示当前鼠标经过的控件的信息.

在使用 Control...() 函数时,有一些控件描述可以使用ControlID. 通过这些描述才能正确的识别.这些描述包括:

ID - 内部控件 ID. The Control ID is the internal numeric identifier that windows gives to each control. It is generally the best method of identifying controls. In addition to the AutoIt Window Info Tool, other applications such as screenreaders for the blind and Microsoft tools/APIs may allow you to get this Control ID
TEXT - 控件上的文本,例如: 按钮上显示的 "下一步(&N)"
CLASS -内部控件的"类"名称,如 "Edit" 或者 "Button"
CLASSNN - 类别名, 如: "Edit1"
NAME - 内部 .NET Framework WinForms 名称 (如果有效)
REGEXPCLASS - 控件类名使用 正则表达式
X(坐标) \ Y(坐标) \ W(宽度) \ H(高度) - 控件坐标与大小.
INSTANCE - 基于1开始的接口(instance,原翻译为枚举) 由程序自动分配的唯一标识.
一个控件中的一个或者多个 controlID ,使用下列格式

[属性1:值1; 属性2:值2]

注意: If this special format is not used then the parameter is taken to be a control ID (if numeric) or the ClassnameNN/text of the control (if a string). Although the special format is more longwinded than these methods it is much less ambiguous.

如果一个值中包含了一个 ";" 它必须是成对的(it must be doubled).



例如 发送一些文本到记事本窗口

ControlSend("无标题 - 记事本", "", "[CLASS:Edit; INSTANCE:1]", "This is some text")

或者

ControlSend("无标题 - 记事本", "", "[CLASSNN:Edit1]", "This is some text")

或者

ControlSend("无标题 - 记事本", "", "Edit1", "This is some text")



例如 点击 "我的窗口" 中控件ID为254的控件

ControlClick("我的窗口", "", "[ID:254]")

或者

ControlClick("我的窗口", "", 254)



例如 设置 .NET Winforms "textBoxFolder" 控件文本为 "C:\Some\Folder"

ControlSetText("我的窗口", "", "[NAME:textBoxFolder]", "C:\Some\Folder")



例如. 单击第二个包含"完成"文本的"按钮"

ControlClick("我的窗口", "", "[CLASS:Button; TEXT:完成; INSTANCE:2]")





控件句柄 (HWND)
使用 ControlGetHandle 函数里可以确定控件的 Handle(句柄) 或者 HWND(窗口句柄). 一个句柄是 Windows 赋予控件的唯一标识符. 创建的每个控件 都有不同的句柄. 使用这个方法来访问控件一般是为对怎么使用句柄有深刻认识的用户准备的.





请到这里 函数参考\ 窗口管理\控件相关 查看控件函数列表及说明.
发表于 2009-10-15 13:25:13 | 显示全部楼层
ps:请看帮助 窗口标题与文本(高级)
 楼主| 发表于 2009-10-15 13:56:23 | 显示全部楼层
看了二楼的
例如 发送一些文本到记事本窗口
ControlSend("无标题 - 记事本", "", "[CLASS:Edit; INSTANCE:1]", "This is some text")
或者
ControlSend("无标题 - 记事本", "", "[CLASSNN:Edit1]", "This is some text")
或者
ControlSend("无标题 - 记事本", "", "Edit1", "This is some text")

这三个都是一样的,明白了。只是不同的写法,我一直就知道第三种,前两种以前没看到过,看帮助里面是英文的,不太懂。
发表于 2009-10-15 14:05:27 | 显示全部楼层
就是以类名来确定控件

因为有些时候 标题会变 但是类不变 可以用类名来确定那些经常变标题的窗口等一些

不过帮助里是中文的 希望你下个新版
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-5 03:40 , Processed in 0.105236 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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