找回密码
 加入
搜索
查看: 8933|回复: 20

[AU3基础] (已解决)类别名和高级模式(类)的数值经常变化,像 'ID1032'”这样的控件怎么使用啊?

  [复制链接]
发表于 2012-11-7 16:26:21 | 显示全部楼层 |阅读模式
本帖最后由 yufei8051 于 2012-11-9 16:57 编辑

知道了。加上中括号,例:
ControlSetText( "网上股票交易系统5.0" , "", "[1032]", "这里是设置的文本" )

=================================================================================
如下图所示,我想使用 ID 1032 当控件识别,怎么用呢?
在 ControlSetText("[CLASS:Notepad]", "", "Edit1", "这里是设置的文本" )
中,“类别名:Edit1”   经常变化使用出错,“高级模式(类):[CLASS:Edit; INSTANCE:1]”也一样,唯独“ID: 1032”这一部分是不变的。
可是在上面的函数中怎么用呢?直接写 1032 不行,加上引号 "1032"  也不行啊?
像:
ControlSetText( "网上股票交易系统5.0" , "", 1032, "这里是设置的文本" )
ControlSetText( "网上股票交易系统5.0" , "", "1032", "这里是设置的文本" )
都不行啊?
请高手指点一下,不胜感谢!
[/code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-11-7 17:15:37 | 显示全部楼层
类别名
高级模式

两个二选一

评分

参与人数 1金钱 +10 收起 理由
yufei8051 + 10 感谢回复!

查看全部评分

发表于 2012-11-7 17:52:20 | 显示全部楼层
本帖最后由 131738 于 2012-11-7 17:56 编辑

看不出 "[CLASS:Notepad]" 在这里是什么?,  试试:
ControlSetText("网上股票交易系统5.0" , "", 1032, "填入的代码")

评分

参与人数 1金钱 +10 收起 理由
yufei8051 + 10 感谢回复!

查看全部评分

 楼主| 发表于 2012-11-7 18:37:06 | 显示全部楼层
谢谢楼上两位回复!
楼上的,一楼那个例子是随便找的,我写的跟你的一模一样,不行的。
二楼的,你说的那两个经常会变,例如这次打开软件是edit1,下次打开就变成edit7了,高级的那个也是一样,只有这个id 1032 每次都是一样的。所以想它就稳定了。
发表于 2012-11-7 18:47:05 | 显示全部楼层
回复 1# yufei8051

你上面的软件,类名明显不是"[CLASS:Notepad]",所以不行
直接用标题吧,虽然AU3允许使用类名代替标题,但不表示这种方法更好,或者显得更高明些~
    其实你用记事本试一下就知道控件ID的用法了~~
主要有两种:
第一.直接使用,看函数本身的用法解释就知道;
第二.用引号(单引或者双引)引起来,如:'[ID:1032]'(不区分大小写)

评分

参与人数 1金钱 +30 收起 理由
yufei8051 + 30 成功了!特别感谢

查看全部评分

发表于 2012-11-7 18:47:41 | 显示全部楼层
回复 1# yufei8051

你上面的软件,类名明显不是"[CLASS:Notepad]",所以不行
直接用标题吧,虽然AU3允许使用类名代替标题,但不表示这种方法更好,或者显得更高明些~
    其实你用记事本试一下就知道控件ID的用法了~~
主要有两种:
第一.直接使用,看函数本身的用法解释就知道;
第二.用引号(单引或者双引)引起来,如:'[ID:1032]'(不区分大小写)
 楼主| 发表于 2012-11-7 20:32:31 | 显示全部楼层
ControlSetText("网上股票交易系统5.0" , "", 1032, "填入的代码")
ControlSetText("网上股票交易系统5.0" , "", ”1032”, "填入的代码")
这两种写法都不行。
发表于 2012-11-7 23:31:20 | 显示全部楼层
回复 7# yufei8051

看5楼~~~~~~

评分

参与人数 1金钱 +10 收起 理由
yufei8051 + 10 感谢回复!

查看全部评分

发表于 2012-11-8 08:56:04 | 显示全部楼层
还是用坐标吧 坐标总不会变吧

评分

参与人数 1金钱 +10 收起 理由
yufei8051 + 10 感谢回复!

查看全部评分

发表于 2012-11-8 08:56:07 | 显示全部楼层
还是用坐标吧 坐标总不会变吧
 楼主| 发表于 2012-11-8 10:47:44 | 显示全部楼层
回复  yufei8051

你上面的软件,类名明显不是"[CLASS:Notepad]",所以不行
直接用标题吧,虽然AU3允许使用 ...
annybaby 发表于 2012-11-7 18:47



    太感谢了!
第二.用引号(单引或者双引)引起来,如:'[ID:1032]'(不区分大小写)
用这种方式成功!
好人一生平安!再次谢谢!
发表于 2012-11-8 11:33:40 | 显示全部楼层
回复 11# yufei8051


   不用客气,论坛本来就是让大家相互学习讨论的地方,其他路过的前辈朋友不解答,不表示他们不会,可能只是问题太简单了,觉得直接看文档就可以解决~~
比如说,你本帖主要是想学习ID的用法,你可以先用记事本来测试,如下:
ControlSetText('无标题','',15,'annybaby')
ControlSetText('无标题','','[ID:15]','annybaby')
ControlSetText('无标题','','Edit1','annybaby')
ControlSetText('无标题','','[CLASS:Edit; INSTANCE:1]','annybaby')

然后,你会发觉,上面的几种方法都是可以的,然后再变通一下,将里面的ID,Edit1,CLASS,INSTANCE等改变一下,测试可知,ID,CLASS,INSTANCE等变成小写后依然有效,而"Edit1"改成"edit1"后就无效,可知用类别名作为参数时,是区分大小写的,而类名则不区分

举一反三:
上面的测试可以帮助理解ID的用法,然而,如果在其它程序测试无效时,不表示你的用法错了,可能是软件的作者不允许后台操作等,比如加入类似的
If WinActive('你要操作的窗口标题或者句柄') Then
        ;do something
EndIf

那么,诸如ControlClick()之类的,你后台点击自然就失效了
 楼主| 发表于 2012-11-8 18:02:35 | 显示全部楼层
回复 12# annybaby


    谢谢你的回复。
请问为什么有的文本框用"[ID:1033]‘作为控件id不行?只能使用"Edit7"或[CLASS:Edit; INSTANCE:3]??
不行的意思是使用
ControlSetText($wsgpjyxt, "","[ID:1034]", "1034")
时,文本框里面的字根本不变化,字符输入不进去。用"Edit7"或[CLASS:Edit; INSTANCE:3]
却正常。

ControlSnd  一样。
 楼主| 发表于 2012-11-8 18:04:09 | 显示全部楼层
还是用坐标吧 坐标总不会变吧
zyq0ting 发表于 2012-11-8 08:56



    我要输入字符串啊,坐标的怎么用?可否详细的说说啊
 楼主| 发表于 2012-11-8 21:33:43 | 显示全部楼层
买入界面,
代码,价格,数量的类别名和id分别是
edit1,edit2,edit3
1032.   1033.   1034
卖出界面分别是
edit7,edit8,edit9
1032.  1033.   1034

名称都是1036
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 19:15 , Processed in 0.150129 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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