TC官方合作论坛
标题:
【新手问题】新手又遇到问题了,各位大神求解啊。
[打印本页]
作者:
648367291
时间:
2012-5-22 16:12
标题:
【新手问题】新手又遇到问题了,各位大神求解啊。
2话不说先上图。
[attach]3370[/attach]
我调试明明能成功返回答案。可是为什么
如果那里判断
不正确。直接跳到否则下面去了。
作者:
TC
时间:
2012-5-22 16:19
这个是整个字符串对比,你看下 ok: 和 ok:34,30 明明是不一样的字符串,建议你只对比前3个字符
作者:
mahua1130
时间:
2012-5-22 16:24
很明显 你的那个是否成功 不等于OK
因为他的值是 ok:"你答题器返回的坐标值x和y"
你要先分离你的 返回值
然后判断分离的返回值的前面那个数组 是否等于OK
作者:
648367291
时间:
2012-5-22 16:25
哦。谢谢,这个问题我解决了。出现一个新的问题。
加了一行代码
整型 结果=字符串.查找字符串(是否成功,"OK:")
如果(结果==0)
XXXXXX
结果结束
完成之后出现这个。然后调试程序直接卡死。[attach]3372[/attach]
作者:
648367291
时间:
2012-5-22 16:26
#import "dm.dmsoft" dm
空间 大漠答题
//定义默认空间
功能 整型 验证码()
字符型 返回值=系统.枚举("temp",0)
//说明:支持多张图片(图片与图片中间使用 竖线隔开)和根据四角的颜色判断是否为透明图
整型 x,y,图片序号,hwnd
hwnd=转换.字符型转整型(返回值,0)
窗口.找图(hwnd,0,0,1440,900,"rc:验证码.bmp",#101120,1.0,1,x,y)
如果(x<0)
辅助.消息框("找不到图片")
如果结束
辅助.等待(500)
整型 句柄=dm.FaqCapture(x, y, x+80, y+80,50,0,0)
辅助.等待(500)
字符型 是否成功=dm.FaqSend("192.168.0.2:12345",句柄,0,10000)
辅助.等待(500)
整型 结果=字符串.查找字符串(是否成功,"OK:")
如果(结果==0)
整型 位置=字符串.查找字符串(是否成功,",")
x=转换.字符型转整型(字符串.移除(是否成功,位置+1,假),0)
y=转换.字符型转整型(字符串.移除(是否成功,位置+1,真),0)
鼠标.移动(x,y)
否则
辅助.消息框("失败")
如果结束
返回 0
功能结束
功能 逻辑型 退出_点击()
//这里添加你要执行的代码
线程.开启("大漠答题.验证码","")
返回 真
//函数返回语句
功能结束
空间结束
//空间结束语句
作者:
648367291
时间:
2012-5-22 16:27
我把整个代码献上。希望大神们指出问题
作者:
648367291
时间:
2012-5-22 16:28
回复
2楼
TC
的帖子
发帖的时候我后悔了。仔细一看才知道问题。现在有了新问题,
能帮忙解决下吗。?
作者:
648367291
时间:
2012-5-22 16:29
回复
3楼
mahua1130
的帖子
发帖的时候我后面了。仔细一看才知道问题。现在有了新问题,
能帮忙解决下吗。?
作者:
mahua1130
时间:
2012-5-22 16:31
你的那个答题搞的太麻烦了 我给你我用过的写好的 答题代码 你参考下
help.sleep(50)
ipjk=edit.gettext("edit13")
help.sleep(800)
tpjb=dd.FaqCapture(60,40,735,425,100,100,3000)
help.sleep(200)
fhda=dd.FaqSend(ipjk,tpjb,0,3*60 *1000)
help.sleep(500)
//list.addstring("list0",fhda)
if(fhda=="Error:服务器繁忙"||fhda=="Error:错误描述"||fhda=="Error:连接服务器失败")
dy1kt.xhdtd(656,248)
return 0
endif
string[] fjda
string sourcestr=fhda,splitstr=":"
cg=str.split(fhda,splitstr,fjda)
if(cg==true)
if(fjda[0]=="OK")
string zb=fjda[1]
string[] fjzb
string sourcest=zb,splitst=","
cg=str.split(zb,splitst,fjzb)
if(cg==true)
bool cx=str.isint(fjzb[0],0)
bool cy=str.isint(fjzb[1],0)
if(cx==true&&cy==true)
int x=convert.strtoint(fjzb[0],0)
int y=convert.strtoint(fjzb[1],0)
dy1kt.xhdtd(x+60,y+40)
endif
endif
else
dy1kt.xhdtd(655,248)
endif
else
dy1kt.xhdtd(655,248)
endif
复制代码
作者:
mahua1130
时间:
2012-5-22 16:44
直接发问 能解决我就帮忙 解决不了自有大神帮忙
作者:
648367291
时间:
2012-5-22 16:53
分割出错了。
现在的情况是 x=ok: y=35
整型 位置=字符串.查找字符串(是否成功,",")
x=转换.字符型转整型(字符串.移除(是否成功,位置+1,假),0)
y=转换.字符型转整型(字符串.移除(是否成功,位置+1,真),0)
鼠标.移动(x,y)
这种情况了。所以在结束的时候才会卡死。 求分割方式
作者:
tyuyan
时间:
2012-5-22 16:56
报字符型转整型错误, 要不就是内容为空,要不就字符型的数据不是纯数字的。
作者:
mahua1130
时间:
2012-5-22 17:15
回复
11楼
648367291
的帖子
额...我给你的源码 就是分割方式 和 判断是否整形......
作者:
648367291
时间:
2012-5-22 17:18
回复
13楼
mahua1130
的帖子
你源码是英文的,我菜鸟有点看不懂。
作者:
mahua1130
时间:
2012-5-22 17:31
回复
14楼
648367291
的帖子
你把命令辅助到帮助里一看就懂了
作者:
小西
时间:
2012-5-22 17:52
看看. 学习了。
作者:
648367291
时间:
2012-5-22 18:53
了解了。仔细看了下。 原来是分割2次啊
先分割 : 两边。 得到OK 和 12,12 然后在 分割坐标 , 得到 12 12是吧
作者:
648367291
时间:
2012-5-22 20:26
回复
15楼
mahua1130
的帖子
能告诉我。
if(fhda=="Error:服务器繁忙"||fhda=="Error:错误描述"||fhda=="Error:连接服务器失败")
这个写法在哪里学的吗。我在TC帮助里面没见到过他说可以这样写的。
我是想知道出处在哪。可能还有很多我不知道的写法
作者:
mahua1130
时间:
2012-5-22 20:59
回复
18楼
648367291
的帖子
这个是自己想出来的
作者:
648367291
时间:
2012-5-22 21:00
回复
19楼
mahua1130
的帖子
你怎么知道 || 可以用作or
我一开始想达到这种效果。首先想到的是or
结果不行。 - -
作者:
mahua1130
时间:
2012-5-22 21:03
回复
20楼
648367291
的帖子
哦 我明白了 你是说语法啊 给你
TC中的逻辑运算符有 “&&”逻辑与 “||”逻辑或 “!”逻辑非
当表达式进行“&&”(逻辑与)运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。
作者:
648367291
时间:
2012-5-22 22:07
回复
21楼
mahua1130
的帖子
恩。我就是想知道这个。 非常感谢
作者:
mahua1130
时间:
2012-5-22 22:08
回复
22楼
648367291
的帖子
回复了你这么多你都不采纳 太不给力了
作者:
648367291
时间:
2012-5-22 22:09
回复
21楼
mahua1130
的帖子
在问一个问题。 为什么TC的后台鼠标怎么用都用不了啊。是不是我不懂用啊。
我打开一张图片。取句柄。来测试也没效果。
拿游戏来也没效果
作者:
648367291
时间:
2012-5-22 23:08
回复
10楼
mahua1130
的帖子
dy1kt.xhdtd(x+60,y+40)
这个我怎么找都找不到。能翻译成中文给我么.
还有。为什么一定要先判断字符串是不是整型?不判断的话就不能分割吗。
作者:
mahua1130
时间:
2012-5-22 23:12
回复
25楼
648367291
的帖子
这个是我自己写的鼠标点击函数.......你可以自己去写一个 内容就是移动 +点击.
作者:
648367291
时间:
2012-5-23 00:00
回复
26楼
mahua1130
的帖子
这个语句能简化吗。
逻辑型 是否=复选框.获得状态("复选框0")
如果(是否)
编辑框.设置文本("编辑框0","打怪脚本开启")
//线程句柄=线程.开启("test_dm.开始","")
如果结束
逻辑型 是否1=复选框.获得状态("复选框1")
如果(是否1)
编辑框.设置文本("编辑框0","申公豹脚本开启")
//线程句柄1=线程.开启("test_dm.验证码","")
如果结束
如果(是否&&是否1)
编辑框.设置文本("编辑框0","2个")
// 线程句柄=线程.开启("test_dm.开始","")
// 线程句柄1=线程.开启("test_dm.验证码","")
否则
如果(!是否&&!是否1)
help.messagebox("你两个都没选中")
endif
如果结束
这个语句还能简单化吗。
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1