不要死循环啊!!!!
本帖最后由 xymc 于 2011-10-14 21:45 编辑WinWait("百度一下,你就知道", "", 60)
If WinExists("百度一下,你就知道") Then Exit
Run('C:\Program Files\Internet Explorer\IEXPLORE.EXE http://www.baidu.com')
以上代码正常的电脑测试通过,但在网维大师的环境下就不行,握说是网维大师HOOK了IE地址栏的类匹配,所以导致WinWait命令对于网页窗口无效。
请问还有什么命令可以代替WinWait,或者说可以实现以下功能。
检测用户有没打开过百度,1分钟内如果没有就自动打开。如果有打开就自动退出。
While 1
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
MsgBox(0,0,'百度的某个网页已经打开')
Else
Run(@ProgramFilesDir&'\Internet Explorer\IEXPLORE.EXE http://www.baidu.com')
EndIf
WEnd
以上代码会一直循环,怎么能做到检测到百度后自动退出程序,不要死循环啦.... 长时间延迟不过我建议你直接使用网维的开机命令来实现。。比这个省事 回复 2# 大叔
汗,你根本没明白我的意思 Run('C:\Program Files\Internet Explorer\IEXPLORE.EXE http://www.baidu.com')自己电脑能打开。网维下打不开。是注册表被修改了。。尝试Run(start http://www.baidu.com') 或Run(explorer.exe http://www.baidu.com')还打不开的话。在网上找找解锁的注册表。 RUN之前先改下注册表。 本帖最后由 星雨朝霞 于 2011-10-9 11:52 编辑
枚举打开的资源管理器的所有路径从中判断路径是否存在baidu域名 本帖最后由 xymc 于 2011-10-9 11:52 编辑
回复 4# 大叔
我都说你误会我的意思了,我没说打不开百度啊,超郁闷!!!
主要问题是前面2行明白么
WinWait("百度一下,你就知道", "", 60)
If WinExists("百度一下,你就知道") Then Exit
就第一行就无效了,网维环境下,IE窗口标题/地址栏的类匹配都无效,明白么
你说下面的打开百度有P用啊,如果你再误会我第3次,你就有点幼稚了 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
MsgBox(0,0,'百度的某个网页已经打开')
Else
Run(@ProgramFilesDir&'\Internet Explorer\IEXPLORE.EXE http://www.baidu.com')
EndIf
回复 7# 星雨朝霞
你这个是检测现在打开的所以窗口,没有baidu就打开是吧
我想一直在让程序检测1分钟内用户有没打开百度,如果在这1分钟内有打开程序就自动退出;
如果1分钟过去了,用户还没有没打开过百度就自动打开百度网页
有没办法改善,谢谢.(枚举资源管理器方面我看不懂) 回复 8# xymc
把那代码加入循环中即可 回复 9# 星雨朝霞
一直在检测感觉不好,有没办法做到像原代码一样,暂停脚本运行直至baidu.com出现为止,然后再检测是是否存在,如果有程序退出,没有的话1分钟后打开baidu.com.谢谢 本帖最后由 xymc 于 2011-10-14 21:44 编辑
它会一直循环 啊,怎么能检测到百度就怎么退出循环 AU3的基本函数的等待命令也是循环检测的.250毫秒检测一次!
.
本帖最后由 xymc 于 2011-10-13 23:38 编辑本人不才,麻烦发下完整代码(我也不要1直循环检测,只要检测1分钟就好了,1分钟后检测不到baidu.com,自动打开,然后程序退出) . 本帖最后由 gzh888666 于 2011-10-18 17:28 编辑
别人帮助你的时候,虽然错误也不要恶语相向,幼稚 这个词能用到一个希望帮助你的人身上吗?
不知道这样写对不对,没有测试,这里给你一个思路!自己完善!#include <INet.au3>
#include <IE.au3>
Local $title = "百度一下,你就知道", $NetGet, $Init
$Init = TimerInit()
While TimerDiff ($Init) > 60000
枚举当前网页的字符串
If StringRegExp($NetGet, "<title>百度一下,你就知道") = 1 Then
Exit
Else
_IECreate("www.baidu.com")
Exit
EndIf
WEnd 回复 4# 大叔
我都说你误会我的意思了,我没说打不开百度啊,超郁闷!!!
主要问题是前面2行明白么
WinWait("百度一下,你就知道", "", 60)
If WinExists("百度一下,你就知道") Then Exit
就第一行就无效了,网维环境下,IE窗口标题/地址栏的类匹配都无效,明白么
你说下面的打开百度有P用啊,如果你再误会我第3次,你就有点幼稚了
xymc 发表于 2011-10-9 11:51 http://www.autoitx.com/images/common/back.gif
现在提问的人才是大爷!
页:
[1]
2