xymc 发表于 2011-10-16 17:48:46

占cpu历害怎么改善一下(已解决)

本帖最后由 xymc 于 2011-10-23 14:06 编辑

While 1
Sleep(500)
Local $Inbaidu=False
$oShell=ObjCreate('Shell.Application')
For $oWindow In $oShell.Windows
      If StringInStr($oWindow.LocationURL,'baidu.com') Then
                $Inbaidu=True
                ExitLoop
      EndIf
Next

If $Inbaidu=True Then
      ExitLoop
EndIf

    WEnd

这样可以吗?Sleep(500),延迟这个值设多大合适点又不会失败???

还有以下这个,哪一个会好点???
While 1
Sleep(1000)
$oShell = ObjCreate('shell.application')
$oShellWindows = $oShell.windows
For $Window In $oShellWindows
If StringRight($Window.FullName, 12) = 'iexplore.exe' Then                        
If $Window.locationurl='http://www.baidu.com/' Or $Window.locationurl='http://www.baidu.com' Then Exit

EndIf
Next
WEnd
以上2个代码都会偶尔出现这个错误。
http://123.zhntwb.com/da.jpg

水木子 发表于 2011-10-16 18:47:23

没明白你代码的意思!
#include <IE.au3>
$oIE = _IECreate ("www.baidu.com", 1)
_IELoadWait ($oIE)
MsgBox(0, '', '加载完成')

kevinch 发表于 2011-10-16 18:52:54

加个sleep(500)

xymc 发表于 2011-10-16 19:41:17

本帖最后由 xymc 于 2011-10-16 19:42 编辑

回复 2# 水木子


    我想检测到百度后就退出,明白了吗?
等待百度网页窗口的出现,如果出现了就退出

xms77 发表于 2011-10-16 20:24:24

用3楼的方法试试

xymc 发表于 2011-10-16 23:57:27

回复 3# kevinch

在哪里加延迟?

xwt620 发表于 2011-10-17 00:01:32

回复 6# xymc


    for 循环里加,不要加到if里面去了

xymc 发表于 2011-10-17 00:33:40

本帖最后由 xymc 于 2011-10-17 00:43 编辑

回复 7# xwt620


    While 1
Sleep(500)
Local $Inbaidu=False
$oShell=ObjCreate('Shell.Application')
For $oWindow In $oShell.Windows
      If StringInStr($oWindow.LocationURL,'baidu.com') Then
                $Inbaidu=True
                ExitLoop
      EndIf
Next

If $Inbaidu=True Then
      ExitLoop
EndIf

    WEnd

这样可以吗?Sleep(500),延迟这个值设多大合适点又不会失败???

还有以下这个,哪一个会好点???
While 1
Sleep(1000)
$oShell = ObjCreate('shell.application')
$oShellWindows = $oShell.windows
For $Window In $oShellWindows
If StringRight($Window.FullName, 12) = 'iexplore.exe' Then                        
If $Window.locationurl='http://www.baidu.com/' Or $Window.locationurl='http://www.baidu.com' Then Exit

EndIf
Next
WEnd

xwt620 发表于 2011-10-17 00:43:52

回复 8# xymc


    一般10毫秒都可以解决CPU暂用的问题,除非是机器配置比较差才用100毫秒以上的延时
如果延时太久也容易造成机器反应迟钝的问题。

kevinch 发表于 2011-10-17 08:23:29

回复 6# xymc

加在Wend前面

xms77 发表于 2011-10-17 13:03:39

回复 8# xymc
sleep(100)就差不多了

haodd 发表于 2011-10-17 18:15:20

你这样的循环 肯定占用很高了

xymc 发表于 2011-10-18 15:13:31

回复 10# kevinch


    加在Wend前面跟我的加在一开始有什么区别?

vason1019 发表于 2012-4-20 23:25:14

某些确实暂用高啊
页: [1]
查看完整版本: 占cpu历害怎么改善一下(已解决)