bforesc 发表于 2008-12-7 16:28:31

由于本人编程经验不足.恳请高人帮忙优化一下这段简短的代码.

While 1
        if WinExists ("","真的要这么做吗") then
        WinActivate("","真的要这么做吗")
        send("{enter}")
        EndIf
        if WinExists("","是否要确定") Then
        WinActivate ("","是否要确定")
        send("{enter}")   
        EndIf
WEnd

liongodmien 发表于 2008-12-7 16:33:19

没什么好优化的了,初接触是这样的了!

While 1
      if WinExists ("","真的要这么做吗") then
      WinActivate("","真的要这么做吗")
      send("{enter}")
      EndIf
      if WinExists("","是否要确定") Then
      WinActivate ("","是否要确定")
      send("{enter}")   
      EndIf
      sleep(10)
WEnd

bforesc 发表于 2008-12-7 16:51:09

谢谢。现在我把它写成这样, 好像占用的内存和运算速度都差不多,只是代码简洁了点。



While 1
      if WinExists ("","真的要这么做吗") then disposal("","真的要这么做吗")
      if WinExists("","是否要确定") Then disposal("","是否要确定")
WEnd
Func disposal($Y1,$Y2)
      WinActivate($Y1,$Y2)
      send("{enter}")
EndFunc

bforesc 发表于 2008-12-7 17:05:10

就是用了while true循环占用的内存过大. 有没有办法搞低点.?

bforesc 发表于 2008-12-7 17:08:16

还有CPU的使用率也很高.

文白 发表于 2008-12-7 18:29:01

在while 1 ...wend 中加入 sleep(*) *为时间 单位为毫秒

bforesc 发表于 2008-12-7 18:30:12

可是加了sleep后会影响程序效率. :face (29):

文白 发表于 2008-12-7 18:34:53

例如0.02秒 不会很受影响的吧! sleep(20)
你可以实际运行比较一下

bforesc 发表于 2008-12-7 18:51:30

哈哈. 我发现在while与wend之间什么都不加.过一段时间后占用CPU只是0、1、2这样哈. 真奇怪.. 不知道是不是操作系统有这样的功能去优化进程.:face (33):

xsw123 发表于 2008-12-7 20:28:31

WinWait("", "真的要这么做吗")
WinActivate("", "真的要这么做吗")
Send("{enter}")
WinWait("", "是否要确定")
WinActivate("", "是否要确定")
Send("{enter}")
页: [1]
查看完整版本: 由于本人编程经验不足.恳请高人帮忙优化一下这段简短的代码.