TC官方合作论坛

 找回密码
 立即注册
查看: 980|回复: 0

[问题] 新手求指导,求优化

[复制链接]
发表于 2017-10-22 22:37:49 | 显示全部楼层 |阅读模式

马上加入TC

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

x
代码思路:打开第一个窗口时,执行第一段代码;在不停止代码时,打开第二个,就执行第二段代码;以此类推。
因为开完三个窗口,再开始执行,不知道哪段代码在哪个窗口执行了。也就是说,我要让某段代码在指定窗口运行。

再进一步的功能,可以某个窗口代码单停。
新手求指导,求优化。本来论坛有类似源码,但我用的7.0,看以前版本的代码,看的一头雾水。

var thread_id=array()
var dm
var hwnds
var hwnd=array()
var 子窗口=array()
//从这里开始执行

function 初始化()
    regdll("f:\\game\\game_script\\dm.dll",true)
    var ret=isregister("dm.dmsoft")
    if(ret==0)
        messagebox("插件未注册")
    end
    dm=com("dm.dmsoft")
    traceprint(dm.ver())
    var path=dm.SetPath("F:\\game\\game_TC","")

end


function 找窗口()
    hwnds = dm.EnumWindow(0,"记事本","",1)
//这后面写的好几行,是发现这条命令,只能一次找到父窗口的句柄?
    sleep(50)
    var n
    n=strsplit(hwnds,",",hwnd)
    sleep(50)
    traceprint(hwnd)
    sleep(50)
    for(var i = 0; i < 3; i++)
        traceprint(i)
        子窗口=dm.EnumWindow(hwnd,"","",4+8+16)
        sleep(50)
        traceprint(子窗口)
        sleep(50)
        select(i)
            case 0
            thread_id=threadbegin("第一个挂机","")
            sleep(1000)
            threadsuspend("thread_id")
            sleep(2000)
            threadresume("thread_id")
            case 1
            thread_id=threadbegin("第二个挂机","")
            sleep(1000)
            threadsuspend("thread_id")
            sleep(2000)
            threadresume("thread_id")
            case 2
            thread_id=threadbegin("第三个挂机","")
            sleep(1000)
            threadsuspend("thread_id")
            sleep(2000)
            threadresume("thread_id")
        end
    end

end


function 第一个挂机()
    //从这里开始你的代码
    traceprint("到第一个了吗")
    sleep(200)
    dm.BindWindow(子窗口[0],"dx2","dx2","windows",0)
    sleep(500)
    while(true)      
        dm.SendString(子窗口[0],"abc")
        sleep(500)
        dm.KeyPressChar("enter")
//这里,怎么向指定窗口发送enter键呢?我的代码enter没发向指定窗口。大漠命令写dm.KeyPressChar(子窗口[0],"enter")又不行
        sleep(500)
    end
end

function 第二个挂机()
    traceprint("到第二个了吗")
    sleep(200)
    traceprint(dm.BindWindow(子窗口[1],"dx2","normal","windows",0))
    sleep(500)
    while(true)      
        dm.SendString(子窗口[1],"def")
        sleep(500)
        dm.KeyPressChar("enter")
        sleep(500)
    end
end

function 第三个挂机()
    traceprint("到第三个了吗")
    sleep(200)
    traceprint(dm.BindWindow(子窗口[2],"dx2","normal","windows",0))
    sleep(500)
    while(true)      
        dm.SendString(子窗口[2],"hhh")
        sleep(500)
        dm.KeyPressChar("enter")
        sleep(500)
    end
end

function begin_点击()
    //这里添加你要执行的代码
    初始化()
    sleep(500)
    thread_id=threadbegin("找窗口","")
    sleep(1000)

end   


function over_点击()
    //这里添加你要执行的代码
    exit()
end


功能 热键0_热键()
    //这里添加你要执行的代码
    threadsuspend(thread_id)

结束


功能 热键1_热键()
    //这里添加你要执行的代码
    threadresume(thread_id)
结束


回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-6-27 12:04 , Processed in 0.035977 second(s), 23 queries .

Powered by 海安简单软件服务部

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

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