TC官方合作论坛

标题: 枚举老是枚举出已经有的角色 [打印本页]

作者: 小鱼缺氧    时间: 2014-4-21 23:36
标题: 枚举老是枚举出已经有的角色
源码 如下面
功能 枚举()

    游戏句柄 = dm.EnumWindowByProcess("mhmain.exe","梦幻西游","",1+8+16)//大漠枚举窗口

    调试输出(游戏句柄)
    字符串.分割(游戏句柄,",",单个句柄)  
    数组空间.大小(单个句柄,单个句柄几个)
    得到个数=列表框.得到个数("列表框0")
   遍历(i=0;i<单个句柄几个;i++)
        列表框.增加文本("列表框0",dm.GetWindowTitle(单个句柄[i]))//大漠根据句柄获得标题

    遍历结束

功能结束
功能 开始_点击()
    枚举.枚举()
功能结束


比如我开2个游戏,第一次按开始,会  列表框.增加文本,2个角色,
在按一次开始   ,两个相同的 又增加到列表框里,  就会出现4个了 ,高手告诉我 怎么解决呢 !!!

作者: 250366688    时间: 2014-4-22 00:21
我今天也碰到这个问题!。不同的是我用的是数组,枚举到了相同的 话是因为枚举到了同一个窗口句柄,可以根据这个特性做一个检查,
声明一个数组,枚举之前检查 一下数组里边是不是已经存在了你要的东西,
遍历(i=0;i<单个句柄个数;i++)
单个句柄【i】
查找结果=数组空间.查找(xxxx,单个句柄【i】)
如果(查找结果==-1)//证明该数组里边,没有这个值
数组空间.增加(xxxx,单个句柄【i】,1)
列表框.增加文本("列表框0",dm.GetWindowTitle(单个句柄[i]))//大漠根据句柄获得标题


如果结束

遍历结束
这意思的写的话,会在写入列表框之前判断是否已经写入过一次了
作者: qazw1s2x3    时间: 2014-4-22 03:19
2+2不就等于4吗?
作者: q273814    时间: 2014-4-23 10:04
你开始循环之前不清空列表框的啊 = =
作者: 小鱼缺氧    时间: 2014-4-23 10:08
对哦,
作者: 小鱼缺氧    时间: 2014-4-23 10:25
这法也不好,




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