TC官方合作论坛

 找回密码
 立即注册
查看: 666|回复: 8
打印 上一主题 下一主题

[问题] 求高手看看,线程传参,错误,49行,我也不知道怎么整了

[复制链接]
跳转到指定楼层
楼主
发表于 2013-7-6 21:34:29 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上加入TC

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

x
空间 我的脚本1

线程一,线程二,线程传参,线程控制=0

功能 自动喊话(窗口句柄)
    喊话间隔=编辑框.获得文本("编辑框3")
    ts=com("ts.tssoft")
   
    是否成功 = ts.BindWindow(窗口句柄,"normal","windows","windows",1)
   
    如果(是否成功==0)
        辅助.消息框("窗口绑定失败")
        返回 0
    如果结束
    循环(真)
        ts.KeyPressChar("enter")
        辅助.等待(1000)
        ts.SendString2(窗口句柄,编辑框.获得文本("编辑框0"))
        辅助.等待(1000)
        ts.KeyPressChar("enter")
        辅助.等待(喊话间隔*1000)
        ts.KeyPressChar("enter")
        辅助.等待(1000)
        ts.SendString2(窗口句柄,编辑框.获得文本("编辑框1"))
        
        辅助.等待(1000)
        ts.KeyPressChar("enter")
        辅助.等待(喊话间隔*1000)
        ts.KeyPressChar("enter")
        辅助.等待(1000)
        ts.SendString2(窗口句柄,编辑框.获得文本("编辑框2"))        
        辅助.等待(1000)
        ts.KeyPressChar("enter")
        辅助.等待(喊话间隔*1000)
        
    循环结束
   
功能结束
//开始按钮_点击操作
功能 开始_点击()
   
   
    窗口句柄=系统.枚举("《天龙八部OL》 3.30.2303 (网通-东北网通一区:弹指神功)",0)
   
    字符串.分割(窗口句柄,"|",线程传参)
   
    线程一=线程.开启("我的脚本1.自动喊话",线程传参[0])
   
    线程二=线程.开启("我的脚本1.自动喊话",线程传参[1])
   
    线程控制=1
   
   
功能结束

//退出按钮_点击操作
功能 退出_点击()
   
    辅助.退出()
功能结束





功能 热键0_热键()
    //这里添加你要执行的代码
   
    如果(线程控制==1)
        线程.暂停(线程一)
        线程.暂停(线程二)
        线程控制=0
    否则
        线程.恢复(线程一)
        线程.恢复(线程二)
        线程控制=1
        
    如果结束
   
功能结束
空间结束
回复

使用道具 举报

9#
发表于 2013-7-8 12:32:09 | 只看该作者
回复 8楼2938724136的帖子

一个后台多开自动喊话脚本...

  1. 空间 我的脚本1

  2. 变量 线程传参=数组[10],线程句柄=数组[10],线程控制=0,窗口总数
  3. 变量 ts=数组[10],a

  4. 功能 开始_点击()
  5.     变量 传入参数
  6.     窗口标题="《天龙八部OL》 3.30.2303 (网通-东北网通一区:弹指神功)"
  7.    
  8.     窗口句柄=系统.枚举(窗口标题,0)
  9.    
  10.     字符串.分割(窗口句柄,"|",线程传参)
  11.    
  12.     数组空间.大小(线程传参,窗口总数)
  13.    
  14.     for(i=0;i<窗口总数;i++)
  15.         
  16.         a=i,传入参数=线程传参[i]
  17.         
  18.         线程句柄[i]=线程.开启("我的脚本1.自动喊话",传入参数)
  19.     endfor
  20.    
  21. 功能结束


  22. 功能 自动喊话(窗口句柄)
  23.    
  24.     喊话间隔=编辑框.获得文本("编辑框3")
  25.    
  26.     ts[a]=com("ts.tssoft")
  27.     是否成功 = ts[a].BindWindow(窗口句柄,"normal","windows","windows",1)
  28.     辅助.等待(1000)
  29.     如果(是否成功==0)
  30.         辅助.消息框("窗口绑定失败")
  31.     否则
  32.         循环(真)
  33.             ts[a].KeyPressChar("enter")
  34.             辅助.等待(1000)
  35.             ts[a].SendString2(窗口句柄,编辑框.获得文本("编辑框0"))
  36.             辅助.等待(1000)
  37.             ts[a].KeyPressChar("enter")
  38.             辅助.等待(喊话间隔*1000)
  39.             ts[a].KeyPressChar("enter")
  40.             辅助.等待(1000)
  41.             ts[a].SendString2(窗口句柄,编辑框.获得文本("编辑框1"))
  42.             辅助.等待(1000)
  43.             ts[a].KeyPressChar("enter")
  44.             辅助.等待(喊话间隔*1000)
  45.             ts[a].KeyPressChar("enter")
  46.             辅助.等待(1000)
  47.             ts[a].SendString2(窗口句柄,编辑框.获得文本("编辑框2"))        
  48.             辅助.等待(1000)
  49.             ts[a].KeyPressChar("enter")
  50.             辅助.等待(喊话间隔*1000)
  51.         循环结束
  52.     如果结束
  53.    
  54. 功能结束

  55. 功能 热键0_热键()
  56.     //这里设置全部暂停热键
  57.     for(i=0;i<窗口总数;i++)
  58.         线程.暂停(线程句柄[i])
  59.     endfor
  60. 功能结束

  61. 功能 热键1_热键()
  62.     //这里设置全部恢复热键
  63.     for(i=0;i<窗口总数;i++)
  64.         线程.恢复(线程句柄[i])
  65.     endfor
  66. 功能结束

  67. 功能 退出_点击()
  68.     辅助.退出()
  69. 功能结束

  70. 空间结束
复制代码
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2013-7-8 09:05:17 | 只看该作者
说是变量 a 没有定义
回复 支持 反对

使用道具 举报

7#
发表于 2013-7-8 03:55:57 | 只看该作者
功能 开始_点击()
   
   
    窗口句柄=系统.枚举("《天龙八部OL》 3.30.2303 (网通-东北网通一区:弹指神功)",0)
    len,can
    字符串.分割(窗口句柄,"|",can)
    arraysp.size(can,len)
   if(len==1)
   线程一=线程.开启("我的脚本1.自动喊话",can[0])
  else
        if(len>=2)
        线程一=线程.开启("我的脚本1.自动喊话",can[0])
   
       线程二=线程.开启("我的脚本1.自动喊话",can[1])
       endif
   endif

   
    线程控制=1
   
   
功能结束
回复 支持 反对

使用道具 举报

6#
发表于 2013-7-7 19:03:46 | 只看该作者
后台多开要每个线程都要绑定一次要用数组区分开,你这样好像会乱了
  1. 空间 我的脚本1

  2. 变量 线程一,线程二,线程传参,线程控制=0,
  3. 变量 ts=数组[10]
  4. 功能 自动喊话(窗口句柄)
  5.     变量 a
  6.     喊话间隔=编辑框.获得文本("编辑框3")
  7.     ts[a]=com("ts.tssoft")
  8.     是否成功 = ts[a].BindWindow(窗口句柄,"normal","windows","windows",1)
  9.     如果(是否成功==0)
  10.         辅助.消息框("窗口绑定失败")
  11.         返回 0
  12.     如果结束
  13.     循环(真)
  14.         ts[a].KeyPressChar("enter")
  15.         辅助.等待(1000)
  16.         ts[a].SendString2(窗口句柄,编辑框.获得文本("编辑框0"))
  17.         辅助.等待(1000)
  18.         ts[a].KeyPressChar("enter")
  19.         辅助.等待(喊话间隔*1000)
  20.         ts[a].KeyPressChar("enter")
  21.         辅助.等待(1000)
  22.         ts[a].SendString2(窗口句柄,编辑框.获得文本("编辑框1"))
  23.         辅助.等待(1000)
  24.         ts[a].KeyPressChar("enter")
  25.         辅助.等待(喊话间隔*1000)
  26.         ts[a].KeyPressChar("enter")
  27.         辅助.等待(1000)
  28.         ts[a].SendString2(窗口句柄,编辑框.获得文本("编辑框2"))        
  29.         辅助.等待(1000)
  30.         ts[a].KeyPressChar("enter")
  31.         辅助.等待(喊话间隔*1000)
  32.         
  33.     循环结束
  34.    
  35. 功能结束
  36. //开始按钮_点击操作
  37. 功能 开始_点击()
  38.    
  39.     窗口句柄=系统.枚举("《天龙八部OL》 3.30.2303 (网通-东北网通一区:弹指神功)",0)
  40.    
  41.     字符串.分割(窗口句柄,"|",线程传参)
  42.    
  43.     线程一参数=类型.转整型(线程传参[0])
  44.     线程二参数=类型.转整型(线程传参[1])
  45.    
  46.     如果(线程传参[0]>0&&线程传参[1]>0)  
  47.         线程一=线程.开启("我的脚本1.自动喊话",线程一参数)
  48.         
  49.         线程二=线程.开启("我的脚本1.自动喊话",线程二参数)
  50.     否则
  51.         辅助.消息框("枚举到的窗口句柄少于2个"&"线程传参[0]="&线程传参[0]&"线程传参[1]="&线程传参[1])
  52.     如果结束
  53.    
  54.     线程控制=1
  55.    
  56. 功能结束

  57. //退出按钮_点击操作
  58. 功能 退出_点击()
  59.    
  60.     辅助.退出()
  61. 功能结束

  62. 功能 热键0_热键()
  63.     //这里添加你要执行的代码
  64.    
  65.     如果(线程控制==1)
  66.         线程.暂停(线程一)
  67.         线程.暂停(线程二)
  68.         线程控制=0
  69.     否则
  70.         线程.恢复(线程一)
  71.         线程.恢复(线程二)
  72.         线程控制=1
  73.         
  74.     如果结束
  75.    
  76. 功能结束
  77. 空间结束
复制代码
回复 支持 反对

使用道具 举报

5#
发表于 2013-7-7 18:52:45 | 只看该作者
回复 4楼2938724136的帖子

//声明数组变量
  1. 功能 开始_点击()
  2. 变量 线程传参=数组[2]
  3. 变量 线程一参数,线程二参数

  4. 窗口句柄=系统.枚举("《天龙八部OL》 3.30.2303 (网通-东北网通一区:弹指神功)",0)

  5. 字符串.分割(窗口句柄,"|",线程传参)

  6. 线程一参数=类型.转整型(线程传参[0])
  7. 线程二参数=类型.转整型(线程传参[1])

  8. 如果(线程传参[0]>0&&线程传参[1]>0)
  9. 线程一=线程.开启("我的脚本1.自动喊话",线程一参数)

  10. 线程二=线程.开启("我的脚本1.自动喊话",线程二参数)
  11. 否则
  12. 辅助.消息框("枚举到的窗口句柄少于2个"&"线程传参[0]="&线程传参[0]&"线程传参[1]="&线程传参[1])
  13. 如果结束

  14. 线程控制=1

  15. 功能结束
复制代码
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2013-7-7 05:41:55 | 只看该作者
还是不行哥们,错误,调用越界
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2013-7-7 05:36:52 | 只看该作者
谢了,刚学五天,,
回复 支持 反对

使用道具 举报

沙发
发表于 2013-7-6 22:11:30 | 只看该作者
  1. 功能 开始_点击()

  2. 窗口句柄=系统.枚举("《天龙八部OL》 3.30.2303 (网通-东北网通一区:弹指神功)",0)

  3. 字符串.分割(窗口句柄,"|",线程传参)

  4. 线程一参数=类型.转整型(线程传参[0])
  5. 线程二参数=类型.转整型(线程传参[1])

  6. 如果(线程传参[0]>0&&线程传参[1]>0)
  7. 线程一=线程.开启("我的脚本1.自动喊话",线程一参数)

  8. 线程二=线程.开启("我的脚本1.自动喊话",线程二参数)
  9. 否则
  10. 辅助.消息框("枚举到的窗口句柄少于2个"&"线程传参[0]="&线程传参[0]&"线程传参[1]="&线程传参[1])
  11. 如果结束

  12. 线程控制=1

  13. 功能结束
复制代码

是不是没找到窗口句柄,所以传参报错。枚举返回值是字符型的要改改类型。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

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

GMT+8, 2025-10-3 19:10 , Processed in 0.145925 second(s), 25 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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