TC官方合作论坛

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

[已解决] 多线程存不存在抢资源的问题,如果有该如何解决呢?

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-8 19:41:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
比如说我已经完成了一个脚本并生成exe
先单独使用这一个exe的时候是没有问题的,不会报错
但是当我打开2个以上的相同的exe
脚本可能同时去完成一个命令,比如找图比如找字,这个时候就会出现找不到图找不到字的问题
请问该如何解决呢
回复

使用道具 举报

地板
发表于 2014-9-8 22:24:50 | 只看该作者
本帖最后由 67800461 于 2014-9-8 22:29 编辑

这个问题怎么说呢! 你完全可以在一个EXE里面 做个多线程
最主要的问题 出在了  打个比方你用的是大漠  dm=com("dm.dmsoft")     
第一个EXE里面用了  dm=com("dm.dmsoft")     你打开第二 个其实还是用了  dm=com("dm.dmsoft")    你要 第二换成 dm2=com("dm.dmsoft")  在第二个里面应该就没问题了

这些你全可以放在一个EXE 里面
简单说吧虽然你搞了N个EXE再做 但你只了一个dm 你要是 dm dm2 dm3.........

以前TC3.0版的倒是可以 现在必须这样了
回复 支持 反对

使用道具 举报

沙发
发表于 2014-9-8 21:20:06 | 只看该作者
这个不是多线程 这个是多进程 你是前台脚本还是后台的 如果是后台的那可能是2个程序控制一个窗口 这个时候就容易出现问题了
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2014-9-8 21:52:20 | 只看该作者
贱哥 发表于 2014-9-8 21:20
这个不是多线程 这个是多进程 你是前台脚本还是后台的 如果是后台的那可能是2个程序控制一个窗口 这个时候 ...

谢谢,我是后台的,一个程序控制一个窗口的
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2014-9-8 22:36:21 | 只看该作者
67800461 发表于 2014-9-8 22:24
这个问题怎么说呢! 你完全可以在一个EXE里面 做个多线程
最主要的问题 出在了  打个比方你用的是大漠  dm ...

你说的意思我明白了。但是为什么我在一个EXE里面多开还是会出现问题。
比如说:我绑定了第一个窗口,然后再绑定第2个窗口,开启与第一个窗口相同的命令,结果就像是错乱了似得。
我用的是天使,能否给我举个简单点的多开例子呢?
我初始化注册插件成功,绑定里面也设置了资源,创建了对象,理论上来说,好像是没有问题
回复 支持 反对

使用道具 举报

6#
发表于 2014-9-8 22:43:26 | 只看该作者
简单的说吧
创建对象的时候 ts1=    ts2 =            绑定的时候 ts1.去绑定第一个窗口 后面的全是ts1.带头              第二个用ts2.去绑定窗口 后面的编码全是ts2带头  这样就可以达到双开了

还不懂 就上点代码帮你改改
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2014-9-9 20:34:57 | 只看该作者
67800461 发表于 2014-9-8 22:43
简单的说吧
创建对象的时候 ts1=    ts2 =            绑定的时候 ts1.去绑定第一个窗口 后面的全是ts1.带 ...

空间 蓝叶东方
变量 窗口句柄,ts,intX,intY,皇榜X,皇榜Y,继续X,继续Y,点将军X,点将军Y,药名,需要的数量,任务
变量 线程皇榜,线程师门,线程帮派,线程试炼,线程检测
ts = com("ts.tssoft")
功能 初始化()
    help.sleep(300)
    蓝叶东方.注册天使()
    help.sleep(300)
    蓝叶东方.解决残留垃圾()
功能结束
功能 师门_点击()
    任务="师门任务"
    help.sleep(200)
    ts.MoveTo(532,698)
    help.sleep(50)
    ts.LeftClick()//解决第一次鼠标点击无效的问题
    线程师门=线程.开启("蓝叶东方.做师门","")
    help.sleep(200)
    线程.关闭(线程皇榜)
    help.sleep(200)
    线程.关闭(线程帮派)
    help.sleep(200)
    线程.关闭(线程试炼)
功能结束

//这中间都是具体代码了

功能 绑定窗口_点击()
    绑定对象名=编辑框.获得文本("填写游戏角色名")
    窗口句柄 = ts.FindWindow("",绑定对象名) //zmyth.l2d.Frame
    ts.SetPath(辅助.获取资源路径("rc:"))
    ts_ret = ts.SetDict(0,"东方颂.txt")   
    ts_ret = ts.SetWindowState(窗口句柄,12)//恢复激活窗口
    help.sleep(500)
    ts.MoveWindow(窗口句柄,-10,-10)
    help.sleep(2500)
    ts_ret = ts.BindWindow(窗口句柄,"dx2","dx","dx",1) //
    如果(ts_ret!=1)
        help.messagebox("窗口绑定失败,错误码:"&ts.GetLastError())
        help.exit()
    否则
        ts.DownCpu(50)
        ts.LockInput(0)
        编辑框.设置文本("调试用",绑定对象名&"的窗口绑定成功\r\n"&编辑框.获得文本("调试用"))  
    如果结束
功能结束

功能 注册天使()
    help.sleep(300)
    if(help.isregister("ts.tssoft"))
        //调试输出("天使已经降临")
        编辑框.设置文本("调试用","天使已经降临\r\n")   
    else
        调试输出("开始注册插件")
        是否成功=辅助.注册插件("rc:\\TSPlug.dll",真)
        如果(是否成功)
            调试输出("插件注册成功")
        否则
            help.messagebox("天使未注册成功")
        如果结束
    endif
功能结束

功能 退出_点击()
    ts.UnBindWindow()
    辅助.等待(50)
    辅助.退出()
功能结束
空间结束

大体上就是这样的,我实际上想要实现的功能就是:鼠标指向窗口按下某键就开启一个线材,达到多开的目的
回复 支持 反对

使用道具 举报

8#
发表于 2014-9-9 22:10:51 | 只看该作者
TC结合天使插件多对象多开示例  

TC编码工具右上角里面有个现成的多开示例!!里面有源码 很详细
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2014-9-9 23:58:30 | 只看该作者
67800461 发表于 2014-9-9 22:10
TC结合天使插件多对象多开示例  

TC编码工具右上角里面有个现成的多开示例!!里面有源码 很详细  ...

刚看了下,太详细了。有点绕。我这个没有子窗口的,能否修改一下呢,就把那个事例修改一下就好
回复 支持 反对

使用道具 举报

10#
发表于 2014-9-10 21:27:50 | 只看该作者

bbs中的附件我都下载不到呢
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-25 18:04 , Processed in 0.179864 second(s), 23 queries .

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

© 2001-2013 Comsenz Inc.

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