wangwen916 发表于 2009-1-19 16:41:52

如何快速屏蔽窗口?or批量关闭窗口?

一个软件可以扫描IIC读的地址.(即判断ADDR到底为多少)
ADDR的值为0000-FFFF
VALUE为0000-FFFF
设置ADDR为:"0000", READ -->(VALUE大于0否?)弹出窗口--->关闭窗口-->ADDR+1-->重新设置ADDR

问题就是关闭窗口时需要时间太久.我用
WinKill("","Read I2C err!")       
Winclose("","Read I2C err!")       
我估计上面两个是要等窗口创建成功才能去关闭.
扫65535(0XFFFF)需要很长时间,还有几个口要调整就是好几个65535了,半天也扫不完.

2.或者我不关闭这个弹出窗口,速度如飞,但是到最后可是N个ERR窗口了,是否可以用什么批量把所有的ERR窗口全关了呢?
谢谢!
删除

[ 本帖最后由 wangwen916 于 2009-1-20 11:07 编辑 ]

ceoguang 发表于 2009-1-19 16:56:12

代码发上来大家才有可能帮你去优级化.

wangwen916 发表于 2009-1-19 17:09:12

不是吧....

代码帖出来了,请高手过目...

[ 本帖最后由 wangwen916 于 2009-1-19 18:10 编辑 ]

ceoguang 发表于 2009-1-19 18:39:35

不是关闭窗口慢,而是循环当中循环再循环无法响应过来.你应该将每个循环拆分开来,使用AdlibEnable去执行,让函数的返回值去决定该做什么.

wangwen916 发表于 2009-1-19 20:31:01

AdlibEnable不可否认是个好东西!但楼上意见不敢苟同,因为我把弹出窗口关闭行注释掉后,能很快运行找到地址,9速度非常快).但是出现了一大堆的ERR提示框.
所以可以肯定是
;WinKill("","Read I2C err!")                              ;关闭弹出窗口
占用了时间.
我现在希望能把这些一样的窗口关闭.
或者根本不弹出,原来的EXE(C++)有MessageBoxA项目,我想修改,但是没有成功...

wangwen916 发表于 2009-1-20 11:06:55

解决方法...最后才去关闭那个窗口,中间添加一个窗口弹出次数,以1确定要关闭多少次.

$num=$num+1
;以上插到内循环中,每READ一次,加一次
;以下到文件结束...
WinActivate("","Read I2C err!")
While 1
        if $num=0 Then
                ExitLoop
        EndIf
        WinKill("","Read I2C err!")       
        $num=$num-1
WEnd

目前我就这个方法.

ceoguang 发表于 2009-1-20 11:17:54

既然你知道AdlibEnable是个好东东,那么你就可以获取WinKill需要的时间了

wangwen916 发表于 2009-2-5 01:53:08

:face (29): ,谢谢关注...
页: [1]
查看完整版本: 如何快速屏蔽窗口?or批量关闭窗口?