TC官方合作论坛

 找回密码
 立即注册
查看: 1638|回复: 6

[问题] 大家好请问下,这段代码会崩溃,帮我分析下杀原因

[复制链接]
发表于 2016-12-27 23:43:06 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  dm0[上班]=com("dm.dmsoft")
    遍历(变量 i = 0; i <A; i++)
        a[i] = 表格获取内容("表格0",i+1,0)
        b[i] = 表格获取内容("表格0",i+1,1)
    结束
    dm0[上班].KeyPressStr(a[上班],50)
    调试输出(dm0)
    等待(500)
    dm0[上班].KeyDown(9)
    dm0[上班].KeyPressStr(b[上班],50)
    调试输出(a[上班])

回复

使用道具 举报

发表于 2016-12-27 23:48:57 | 显示全部楼层
目测不是变量命名 “dm0[上班] ” 有问题,就是遍历有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-27 23:50:42 | 显示全部楼层
chen1882729 发表于 2016-12-27 23:48
目测不是变量命名 “dm0[上班] ” 有问题,就是遍历有问题

变量 线程ID ,A,句柄=数组(),dm_ret=数组(),dm0=数组(),字符串=数组(),cmc=数组(),鼠标移动点击线程=数组(),dm1=数组(),dm
变量 自动登录线程=数组(),行号=数组() ,列号=数组(), a=数组(),b=数组(),输入字符串线程=数组()
功能 启动_热键()
    RegCom()
    获取窗口句柄数组()
    绑定才1()
    遍历(变量 i = 0; i < A; i++)
        输入字符串线程=线程开启("输入账号",i)
        调试输出(输入字符串线程)
    结束   
    等待(5000)
结束
功能 终止_热键()
    线程关闭(线程ID)
结束
功能 按钮0_点击()
    RegCom()
输入账号(a)
结束
功能 RegCom()
    变量 AppPath
    变量 regPath = 获取资源路径(AppPath&"com\\DmReg.dll")
    变量 dmPath = 获取资源路径(AppPath&"com\\dm.dll")
    变量 ret = 动态库调用(regPath,"int","SetDllPathA","char *",dmPath,"int",0)
    变量 rdm = 插件("dm.dmsoft")
   
    变量 reg_dm = rdm.Reg("assxassx1bf8502ca6550e1fd9153fb5b1ce1c51d","")
    如果(reg_dm!=1)
        调试输出("成功了"&reg_dm)
        返回 假
    否则
        调试输出("单选框获取文本(单选框0)"&reg_dm)
        返回 真
    结束
结束
功能 获取窗口句柄数组()
    变量 返回值,句柄2,句柄1
    句柄 = 数组()
    dm=com("dm.dmsoft")
    dm=dm.EnumWindow(0,"新倩女幽魂","",1+4+8+16)
    调试输出(dm&"|")
    A = 字符串分割(dm,",",句柄)
    返回值 = A
    调试输出(句柄)
    遍历(变量 i = 0; i <A; i++)
        
        调试输出(句柄)  
    结束      
结束
功能 绑定才1()
    遍历( 变量 i = 0; i < A; i++)
        dm0=com("dm.dmsoft")     
        dm_ret = dm0.BindWindowEx(句柄,"gdi","normal","windows","",0)
        调试输出(dm_ret)
    结束
结束
功能 输入字符串(下标)
    调试输出(下标)
    //  遍历(变量 i = 0; i < A; i++)
    等待(100)
    dm0[下标].KeyPressStr("123,456",20)
    调试输出("输入成功")
    //   结束
结束
功能 测试1()
    变量 句柄2,dm123
    dm123=com("dm.cmsoft")
    句柄2=dm123.BindWindowEx(264490,"gdi","normal","windows","",0)
    dm.KeyPressStr("123,456",20)
结束
功能 鼠标移动单击(小晨晨)
    遍历(变量 i = 0; i < A; i++)
        窗口激活(句柄)
        dm0.MoveTo(364,402)
        dm0.LeftClick()
        等待(2000)
    结束
结束
功能 编辑框0_内容改变()
    //这里添加你要执行的代码
结束
功能 浏览框0_选择改变()
    变量 文本,文本1
    文本 = 浏览框获取文本("浏览框0")
    调试输出(文本)
    文本1=字符串替换(文本,"\\","/")
    调试输出(文本1)
    变量 file = 文件读取内容(文本1),账号,账号个数
    字符串分割(file,",",账号)
    调试输出(账号)
    账号个数 = 数组大小(账号)
    调试输出(账号个数)
    变量 位置=1 ,已写入=0
    循环(已写入!=账号个数*2)
        表格设置内容("表格0",位置,0,账号[已写入])
        表格设置内容("表格0",位置,1,账号[已写入+1])
        已写入=已写入+2
        位置=位置+1
        调试输出(已写入)
    结束
结束
功能  获取账号数组()   
    遍历(变量 i = 0; i <A; i++)
        a = 表格获取内容("表格0",i+1,0)
        b = 表格获取内容("表格0",i+1,1)
    结束
结束
功能 输入账号(上班)
    调试输出(上班)
     dm0[上班]=com("dm.dmsoft")
    遍历(变量 i = 0; i <A; i++)
        a = 表格获取内容("表格0",i+1,0)
        b = 表格获取内容("表格0",i+1,1)
    结束
    dm0[上班].KeyPressStr(a[上班],50)
    调试输出(dm0)
    等待(500)
    dm0[上班].KeyDown(9)
    dm0[上班].KeyPressStr(b[上班],50)
    调试输出(a[上班])
   
结束


这段代码,我测试过了,就最后这个输入的时候有问题。代码都发了,请帮我分析下。谢啦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-27 23:55:25 | 显示全部楼层
assxassx1 发表于 2016-12-27 23:50
变量 线程ID ,A,句柄=数组(),dm_ret=数组(),dm0=数组(),字符串=数组(),cmc=数组(),鼠标移动点击线程=数组 ...
  1. 变量 线程ID ,A,句柄=数组(),dm_ret=数组(),dm0=数组(),字符串=数组(),cmc=数组(),鼠标移动点击线程=数组(),dm1=数组(),dm
  2. 变量 自动登录线程=数组(),行号=数组() ,列号=数组(), a=数组(),b=数组(),输入字符串线程=数组()
  3. 功能 启动_热键()
  4.     RegCom()
  5.     获取窗口句柄数组()
  6.     绑定才1()
  7.     遍历(变量 i = 0; i < A; i++)
  8.         输入字符串线程[i]=线程开启("输入账号",i)
  9.         调试输出(输入字符串线程)
  10.     结束   
  11.     等待(5000)
  12. 结束
  13. 功能 终止_热键()
  14.     线程关闭(线程ID)
  15. 结束
  16. 功能 按钮0_点击()
  17.     RegCom()
  18. 输入账号(a)
  19. 结束
  20. 功能 RegCom()
  21.     变量 AppPath
  22.     变量 regPath = 获取资源路径(AppPath&"com\\DmReg.dll")
  23.     变量 dmPath = 获取资源路径(AppPath&"com\\dm.dll")
  24.     变量 ret = 动态库调用(regPath,"int","SetDllPathA","char *",dmPath,"int",0)
  25.     变量 rdm = 插件("dm.dmsoft")
  26.    
  27.     变量 reg_dm = rdm.Reg("assxassx1bf8502ca6550e1fd9153fb5b1ce1c51d","")
  28.     如果(reg_dm!=1)
  29.         调试输出("成功了"&reg_dm)
  30.         返回 假
  31.     否则
  32.         调试输出("单选框获取文本(单选框0)"&reg_dm)
  33.         返回 真
  34.     结束
  35. 结束
  36. 功能 获取窗口句柄数组()
  37.     变量 返回值,句柄2,句柄1
  38.     句柄 = 数组()
  39.     dm=com("dm.dmsoft")
  40.     dm=dm.EnumWindow(0,"新倩女幽魂","",1+4+8+16)
  41.     调试输出(dm&"|")
  42.     A = 字符串分割(dm,",",句柄)
  43.     返回值 = A
  44.     调试输出(句柄)
  45.     遍历(变量 i = 0; i <A; i++)
  46.         
  47.         调试输出(句柄[i])  
  48.     结束      
  49. 结束
  50. 功能 绑定才1()
  51.     遍历( 变量 i = 0; i < A; i++)
  52.         dm0[i]=com("dm.dmsoft")     
  53.         dm_ret = dm0[i].BindWindowEx(句柄[i],"gdi","normal","windows","",0)
  54.         调试输出(dm_ret)
  55.     结束
  56. 结束
  57. 功能 输入字符串(下标)
  58.     调试输出(下标)
  59.     //  遍历(变量 i = 0; i < A; i++)
  60.     等待(100)
  61.     dm0[下标].KeyPressStr("123,456",20)
  62.     调试输出("输入成功")
  63.     //   结束
  64. 结束
  65. 功能 测试1()
  66.     变量 句柄2,dm123
  67.     dm123=com("dm.cmsoft")
  68.     句柄2=dm123.BindWindowEx(264490,"gdi","normal","windows","",0)
  69.     dm.KeyPressStr("123,456",20)
  70. 结束
  71. 功能 鼠标移动单击(小晨晨)
  72.     遍历(变量 i = 0; i < A; i++)
  73.         窗口激活(句柄[i])
  74.         dm0[i].MoveTo(364,402)
  75.         dm0[i].LeftClick()
  76.         等待(2000)
  77.     结束
  78. 结束
  79. 功能 编辑框0_内容改变()
  80.     //这里添加你要执行的代码
  81. 结束
  82. 功能 浏览框0_选择改变()
  83.     变量 文本,文本1
  84.     文本 = 浏览框获取文本("浏览框0")
  85.     调试输出(文本)
  86.     文本1=字符串替换(文本,"\","/")
  87.     调试输出(文本1)
  88.     变量 file = 文件读取内容(文本1),账号,账号个数
  89.     字符串分割(file,",",账号)
  90.     调试输出(账号)
  91.     账号个数 = 数组大小(账号)
  92.     调试输出(账号个数)
  93.     变量 位置=1 ,已写入=0
  94.     循环(已写入!=账号个数*2)
  95.         表格设置内容("表格0",位置,0,账号[已写入])
  96.         表格设置内容("表格0",位置,1,账号[已写入+1])
  97.         已写入=已写入+2
  98.         位置=位置+1
  99.         调试输出(已写入)
  100.     结束
  101. 结束
  102. 功能  获取账号数组()   
  103.     遍历(变量 i = 0; i <A; i++)
  104.         a[i] = 表格获取内容("表格0",i+1,0)
  105.         b[i] = 表格获取内容("表格0",i+1,1)
  106.     结束
  107. 结束
  108. 功能 输入账号(上班)
  109.     调试输出(上班)
  110.      dm0[上班]=com("dm.dmsoft")
  111.     遍历(变量 i = 0; i <A; i++)
  112.         a[i] = 表格获取内容("表格0",i+1,0)
  113.         b[i] = 表格获取内容("表格0",i+1,1)
  114.     结束
  115.     dm0[上班].KeyPressStr(a[上班],50)
  116.     调试输出(dm0)
  117.     等待(500)
  118.     dm0[上班].KeyDown(9)
  119.     dm0[上班].KeyPressStr(b[上班],50)
  120.     调试输出(a[上班])
  121.    
  122. 结束
复制代码
回复 支持 反对

使用道具 举报

发表于 2016-12-28 02:07:57 | 显示全部楼层
KeyPressStr是收费命令,你强制使用,直接崩溃
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-28 02:12:06 | 显示全部楼层
2576605471 发表于 2016-12-28 02:07
KeyPressStr是收费命令,你强制使用,直接崩溃

我注册收费了。
回复 支持 反对

使用道具 举报

发表于 2016-12-28 21:18:55 | 显示全部楼层

调试输出(dm0)
明显是这句代码.TC中对象是不能调试输出的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-28 16:55 , Processed in 0.047792 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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