yztest
发表于 2016-1-16 12:26:14
回复 27# luren666
是的,我也试过不同分辨率,结果与你的一样。
用窗口信息工具获得的信息和屏幕座标:
QQ7.3登录窗口:
标题:QQ
类名:TXGuiFoundation
坐标:712,305
大小:495,470
号码框坐标:1038,582(后半部分)
密码框坐标:1038,612 (后半部分)
由此得到相对QQ窗口的座标
号:326,277
密:326,307
xin266
发表于 2016-1-16 12:31:25
有绝对坐标看你找图的内容
如果你找的是登录按钮 登录按钮的位置是不变的
然后你登录按钮的坐标 加一下30或者50取决于你找的什么图
然后就是号码框了
yztest
发表于 2016-1-16 13:13:10
本帖最后由 yztest 于 2016-1-16 13:48 编辑
执行下面的代码后,打开QQ程序,出现了登录框,但是,有时也会出来一个QQEdit窗口
(QQEdit窗口好像就是密码框,因为在密码框输入内容这个窗口里也有,一样是看不见具体字符的,如下图),
不知为何会这样?程序代码中WinGetPos所获得的坐标却是这个窗口的坐标。
如果没有出现QQEdit窗口,鼠标确实能移到号码框,但不能击中号码框,也就是光标焦点不能进入号码框。
---;号码框相对QQ窗口的坐标位置,密码框的Y坐标只要加30
Local Const $cx=326
Local Const $cy=278
Local $win, $size, $QPath
Local $x, $y
$QPath=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\PlatForm_Type_List\1","TypePath") ;从注册表中获取QQ程序路径
$wins = "QQ"
Run($QPath)
WinWait($wins)
WinActivate($wins)
$size = WinGetPos($wins)
Sleep(500)
$x=$size + $cx
$y=$size + $cy
MouseClick("left", $x, $y, 3)
yztest
发表于 2016-1-16 13:28:08
图片不知为何显示不了,再试一次
xin266
发表于 2016-1-16 14:01:23
#include <ImageSearchWithoutDLL.au3>
Global $x = 0
Global $y = 0
Global $w = 1366;@DesktopWidth
Global $h = 768;@DesktopHeight
Global $ColorTrans = ''
Global $mOnlyFirst = True
Global $imagePath = @ScriptDir & "\small.png"
$pos = myImageSearch_Desktop($imagePath, $x, $y, $w, $h, $ColorTrans, $mOnlyFirst)
If @error Then
Sleep(300)
Else
;MsgBox(0, $pos,$pos)
MouseClick("left", $pos + 58, $pos, 2)
EndIf
具体的自己调整吧
xin266
发表于 2016-1-16 14:12:01
哎………………………………………………
xin266
发表于 2016-1-16 14:14:40
回复 34# yztest
找图可以判断各种情况 比如需要输入验证码
或者密码不对等情况
yztest
发表于 2016-1-16 17:16:08
本帖最后由 yztest 于 2016-1-16 17:18 编辑
回复 35# xin266
谢谢您上传的找图的源代码ImageSearchWithoutDLL.au3。
按你给的代码做的,还是报错,不知何原因,请帮看看,谢谢!
---
如果去掉那两行$str的赋值语句(第25,34行),好像就没有出现上面的那个报错,但@error的值都是2
xin266
发表于 2016-1-16 18:33:36
回复 38# yztest
不知道你咋写的这么高级
看不懂
你可以单独测试 点击这段代码
然后再加进去
xin266
发表于 2016-1-16 18:34:24
回复 39# xin266
实际上只用找到号码这个地方就行了
然后按tab 就行了
先点号码 tab就不会出错
yztest
发表于 2016-1-16 22:29:33
回复 35# xin266
在QQ登录窗口内截了一个小图取名small.png,
然后在你的这段代码最后的第16行加上一句:MsgBox(0, "",@error),
最后执行的结果:@error的值为2,根本执行不到 MouseClick
你自己试试
xin266
发表于 2016-1-17 10:11:23
回复 41# yztest
截图不要太大
xin266
发表于 2016-1-17 10:11:45
回复 41# yztest
截图不要太大
我自己写的程序都用好几天了
有啥试试的?
xin266
发表于 2016-1-17 10:13:59
xin266
发表于 2016-1-17 10:14:54
回复 41# yztest
估计是你截图太大还是啥 找不到图
肯定就是2