找回密码
 加入
搜索
查看: 5184|回复: 14

[AU3基础] 向一个激活窗口发送命令

 火.. [复制链接]
发表于 2013-4-15 19:52:43 | 显示全部楼层 |阅读模式
比如qq登录界面 如何发送一个指令让它执行 登录 按钮 我不想用鼠标模拟点击
ControlClick ( "qq2012", "登录", 658084 "left", 1 )
这样写 不可以啊。改如何实现呢 这个问题困扰我2天了
发表于 2013-4-16 10:18:46 | 显示全部楼层
什么意思啊,越来越看不懂论坛的一些提问帖了。没有标点符号,真的令人费解呵。
是“不想用鼠标模拟点击”这个意思吗?可controlclick()就是模拟鼠标点击的一个函数呀。还是不想用controlclick()来模拟点击?因为语句执行不了?语句执行不了,没考虑语句有问题吗?应该去搞懂它啊。基本的一些模拟点击函数不用,去用更高级可能也更复杂更难理解的函数,恐怕难以为继啊。
  如是第2层意思,那么看看帮助,或在论坛搜索,再多试试,应该能找到问题的答案。实在不行,再来提问吧。相信那时你的提问,一定会得到更多一些人来给你回答。

评分

参与人数 1金钱 +30 贡献 +1 收起 理由
tryhi + 30 + 1

查看全部评分

发表于 2013-4-16 10:28:31 | 显示全部楼层
是不是ID会变的
发表于 2013-4-16 11:13:22 | 显示全部楼层
他这个窗体里控件都找不到几个,你怎么控制,还是安心的用模拟吧,看看有没有高手来解围
发表于 2013-4-16 23:21:55 | 显示全部楼层
QQ界面是非标准控件~   不希望基于鼠标模拟点击是基于什么考虑?设计得好的话也是可以保证可靠性的
发表于 2013-4-17 15:36:44 | 显示全部楼层
试了一下,只会用mouseclick模拟点击操作,静待高手用控件操作。
 楼主| 发表于 2013-4-19 08:29:21 | 显示全部楼层
想要的效果就是比如:qq登陆界面 如何从后台发送一个登陆的指令 让脚本执行点击“登陆”按钮“ 不想用鼠标的模拟点击来操作 想用后台内存的功能来实现。
发表于 2013-4-19 10:06:16 | 显示全部楼层
本帖最后由 shqf 于 2013-4-19 10:32 编辑

楼上的朋友,“让脚本执行点击‘登陆’按钮”与“不想用鼠标的模拟点击来操作”,两种表述还是有矛盾呵。不过能大概理解你的意思了。你不是想用脚本模拟点击来完成登录,而是想用脚本直接完成QQ登录功能来进行后台登录。但这样就和controlclick()等函数没有关系了,因为controlclick()等是用来模拟鼠标点击的。
  这里有个问题,如果是网页登录,如一些网站、论坛类等,要么是GET方式提交,要么是POST方式提交,都因遵循http协议,可以用脚本来发送符合http协议的请求,及接收相应的响应数据,而完成后台的直接登录。如是第三方程序,因无法知道其请求的数据格式,甚至接收请求的服务器IP地址或端口,而无法后台直接登录。只能用模拟鼠标点击“登录”按钮的方法来完成登录。
  不过腾讯QQ也有网页界面可以登录,你可以一试后台登录。
 楼主| 发表于 2013-4-19 12:01:00 | 显示全部楼层
回复 8# shqf
就拿qq登陆界面来说 我想在后台完成直接输入账号密码 并且登陆 这3个操作。登陆的那个操作 au3没办法实现后台么 只能鼠标模拟来操作么?
发表于 2013-4-19 16:46:35 | 显示全部楼层
本帖最后由 32714107 于 2013-4-19 16:47 编辑

不用mouseclick,用tab键也可以做到,但总感觉成功登录的可能性不是太高,而且方法也不好
Run("C:\Program Files\Tencent\QQ\QQProtect\Bin\QQProtect.exe")
;WinWait("qq2013") 非标准控件,加这个命令的话就要永远等下去了
Sleep(10000)
Send("{Tab 12}")
Send("qq号")
Sleep(500)
Send("{Tab}")
Send("密码")
Send("{Tab 9}")
Sleep(3000)
Send("{Enter}")
。先上代码,望高手指点
发表于 2013-4-19 16:52:20 | 显示全部楼层
如果要模擬動作,個人習慣是每個動作後面都加上sleep
寧可讓每個動作慢點,但也要他確實做到。
发表于 2013-4-19 16:59:01 | 显示全部楼层
用相对坐标方式,WinGetPos获取QQ窗体左上角坐标,然后尝试得出输入框和按钮相对于窗体左上角的位置坐标,两者相加(窗体左上角坐标+控件相对坐标)得到绝对坐标。用ControlSetText填入内容,其中控件ID使用坐标方式。用ControlClick点击登录按钮,同样控件ID使用坐标方式。
从网上找到这种方法,应该也可以的!请楼主试试吧
发表于 2013-4-19 22:08:31 | 显示全部楼层
本帖最后由 烟雨 于 2013-4-19 22:13 编辑

假如的格式,不一定准
                        ControlSend("[CLASS:TXGuiFoundation]", "QQ2013", "[CLASS:Edit; INSTANCE:1]", "!u")
                        ControlCommand("[CLASS:TXGuiFoundation]", "QQ2013", "[CLASS:Edit; INSTANCE:1]", "EditPaste", $TRIAL_username)
                        ControlSend("[CLASS:TXGuiFoundation]", "QQ2013", "[CLASS:Edit; INSTANCE:1]", "{Tab}")
                        ControlCommand("[CLASS:TXGuiFoundation]", "QQ2013", "[CLASS:Edit; INSTANCE:2]", "EditPaste", $TRIAL_password)
                        ControlClick("[CLASS:TXGuiFoundation]", "QQ2013", "[CLASS:Button; INSTANCE:1]", "left")
发表于 2013-4-21 17:11:13 | 显示全部楼层
使用   按钮的   ID 咯  (具体的  看下帮助,论坛里找下  “神仙作品”  这个)
如果不行的话   就可能是老马做了手脚
发表于 2013-4-21 23:23:16 | 显示全部楼层
回复 10# 32714107

估计不行
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 06:55 , Processed in 0.081723 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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