TC官方合作论坛

标题: 关于句柄值不能为空的问题,求助 [打印本页]

作者: a425673288    时间: 2012-11-22 20:55
标题: 关于句柄值不能为空的问题,求助
我是根据官方视频 按步骤写的 然后自己修改用途  源码如下:
空间 泡泡自动卖店
//定义默认空间
整型 对象句柄  //这个是临界区的对象
整型 线程句柄  //开启关闭线程的句柄

功能 整型 线程方法() //这里接收线程开启时传入的参数   
整型 句柄=线程.获得当前句柄()   
字符型 返回值=系统.枚举("SWT_Window0",1)//类名枚举
字符型[] 字符句柄集=字符型[1] //需要先初始化一次
逻辑型 是否成功=字符串.分割(返回值,"|",字符句柄集)
整型 c1,i=0
数组.大小(字符句柄集,c1)
循环(i<c1)
    泡泡自动卖店.向窗口发送内容(字符句柄集)
    线程.开启("泡泡自动卖店.向窗口发送内容",字符句柄集)//开启线程
   i=i+1
循环结束

返回 0
功能结束

功能 整型 向窗口发送内容(字符型 字符型句柄)
   
    字符型 返回值=系统.枚举(字符型句柄,3)//副窗口枚举子窗口
    字符型[] 字符句柄集=字符型[1] //需要先初始化一次
    逻辑型 是否成功=字符串.分割(返回值,"|",字符句柄集)
    整型 c1,i=0,句柄
    数组.大小(字符句柄集,c1)
    循环(i<c1)
        如果(窗口.类名(转换.字符型转整型(字符句柄集,0))=="SWT_Window0")
            句柄=转换.字符型转整型(字符句柄集)
            跳出
        如果结束
        i=i+1
    循环结束
     
线程.进入临界区(对象句柄)
//循环(真)
辅助.消息框("自动卖店脚本开始执行")
窗口.提交按键(句柄,112)
辅助.等待(1000)
窗口.提交按键(句柄,100)
辅助.等待(1000)
窗口.提交按键(句柄,13)//回车按键
辅助.等待(1000)
窗口.提交按键(句柄,38)
辅助.等待(1000)
窗口.提交按键(句柄,38)
辅助.等待(1000)
窗口.提交按键(句柄,39)
辅助.等待(1000)
窗口.提交按键(句柄,13)//回车按键
辅助.等待(3000)
键盘.按下(40)
辅助.等待(3000)
键盘.弹起(40)
辅助.等待(3000)
辅助.消息框("自动卖店脚本执行完毕")
//循环结束   
线程.离开临界区(对象句柄)
   
返回 0
   
   
功能结束





     
功能 逻辑型 开始_点击()
//这里添加你要执行的代码
线程句柄=线程.开启("泡泡自动卖店.线程方法","")//开启线程
泡泡自动卖店.线程方法()
返回 真
//函数返回语句
功能结束

功能 逻辑型 退出_点击()
//这里添加你要执行的代码
辅助.退出()
线程.关闭(线程句柄)

返回 真
//函数返回语句
功能结束

功能 逻辑型 初始化()
//这里添加你要执行的代码
对象句柄=线程.创建临界区()

返回 真
功能结束


功能 逻辑型 销毁()
//这里添加你要执行的代码
线程.删除临界区(对象句柄)

返回 真
功能结束


空间结束
//空间结束语句                                                         然后怎么修改成多线程?多窗口同步运行呢?
作者: a425673288    时间: 2012-11-22 20:59
线程.开启("泡泡自动卖店.向窗口发送内容",字符句柄集)//开启线程    这里是不是多线程开启的方法?  多复制几个? 我记得视频是这样说的
作者: 超自然    时间: 2012-11-22 21:02
没有容错,所以会出句柄为0
试问假如你给的父句柄有误,导致没有找到所谓的子窗口,当i=C1之后,还是会走下面的代码.这只是个典型,你里面两次关于句柄的操作都缺容错处理
第二,总是开个线程,然后再调用一次,是在干啥呢??
作者: a425673288    时间: 2012-11-22 21:08
回复 3楼超自然的帖子

我想前台  多线程 多窗口同步处理~~~~
作者: a425673288    时间: 2012-11-22 21:13
回复 0楼a425673288的帖子

我用抓抓  都是子窗口 跟窗口的  都是 SWT_Window0
作者: pixiangyun    时间: 2012-11-22 22:53
前台  多线程 在我的理解中,前台不可能多线程,因为你要操作窗口就得激活窗口,一旦激活了这个窗口,相应的另一个就后台了,如果想多窗口前台操作,我认为该用ctrl+alt实现。  前台鼠标,键盘都工作在激活窗口内的。
作者: a425673288    时间: 2012-11-23 01:02
回复 6楼pixiangyun的帖子

绑定前台窗口 行不? 会不会很麻烦?  而且我不会大漠
作者: pixiangyun    时间: 2012-11-23 08:13
只能激活一个窗口,前台就用不了多线程




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1