VBS怎样判断当前程序窗口是否为指定标题???
我想用vbs循环判断当前的程序窗口标题是否为指定的标题,是就提示“Success”不是就提示“NotExist”,用Wshshell.AppActivate("指定标题"...
我想用vbs循环判断当前的程序窗口标题是否为指定的标题,是就提示 “Success” 不是 就提示 “ Not Exist ” ,用Wshshell.AppActivate("指定标题")= True /False 不是我想要的,那个我知道,他只是搜索当前打开的所有窗口,而我只想判断当前的活动窗口,最好是自己原创的回答,别到网上Copy, 资料我都差得差不多了,有一个说下载一个dynwrap.dll然后 判断当前窗口,但是我试了下,不行,代码我也写出来,你们帮忙看下
WScript.Sleep 3000
Set Wrap = CreateObject("DynamicWrapper")
Wrap.Register "user32.dll", "GetActiveWindow", "f=s", "r=l"
Title = Space(100)
res=Wrap.GetActiveWindow()
WScript.Sleep 3000
'MsgBox Title'
if Title="123456789" then
set oshell = CreateObject("WScript.Shell")
oshell.run ("http://www.baidu.com")
End If
希望大虾赐教!在线等 ...................
兄弟,你这代码好像即便当前操作窗口是指定的窗口它也会弹出 Not Exist啊,还有,怎样让它不对指定的几个窗口作出任何动作??就是说如果当前窗口为‘a.txt’或‘b.txt’或‘c.exe’他就既不提示发现,也不提示没发现,其他的窗口就正常提示。拜托你了兄弟,到时候成功了给你加分 展开
WScript.Sleep 3000
Set Wrap = CreateObject("DynamicWrapper")
Wrap.Register "user32.dll", "GetActiveWindow", "f=s", "r=l"
Title = Space(100)
res=Wrap.GetActiveWindow()
WScript.Sleep 3000
'MsgBox Title'
if Title="123456789" then
set oshell = CreateObject("WScript.Shell")
oshell.run ("http://www.baidu.com")
End If
希望大虾赐教!在线等 ...................
兄弟,你这代码好像即便当前操作窗口是指定的窗口它也会弹出 Not Exist啊,还有,怎样让它不对指定的几个窗口作出任何动作??就是说如果当前窗口为‘a.txt’或‘b.txt’或‘c.exe’他就既不提示发现,也不提示没发现,其他的窗口就正常提示。拜托你了兄弟,到时候成功了给你加分 展开
1个回答
展开全部
这个问题看你问了好久了啊,贴的这段代码也前后不搭的。。。安装个免费的小工具AutoIt,然后再运行以下vbs代码吧,参考中有AutoIt的官方下载地址
根据你所要求的,代码运行后会3秒判断一次当前窗口,直到success或者点no不继续等待。本机运行已经测试通过了。
WaitSpecifiedTitleActivated "想要等待的Title"
Function WaitSpecifiedTitleActivated(strTitle)
Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
Do
WScript.Sleep 3000
intFlag = oAutoIt.WinActive(strTitle)
strCurTitle = CStr(oAutoIt.WinGetTitle("[Active]"))
WScript.Echo strCurTitle
If intFlag = 1 Then
MsgBox "Success"
ElseIf (strCurTitle <> "a.txt") And (strCurTitle <> "b.txt") And (strCurTitle <> "c.exe") Then
MsgBox "Not Exist"
btnFlag = MsgBox("Continue wait window with title "&strTitle&"?",vbYesNo,"Friendly Information")
End If
Loop Until (intFlag = 1 Or btnFlag = vbNo)
End Function
补充:请确认下所指定的窗口是Active的,另外就是确定标题是正确咯,比如文本窗口后面a.txt - Notepad需要写完整的,当然也可以使用正则表达式来匹配,这需要稍微修改下代码,可以用标题很简单的窗口测试下看看
根据你所要求的,代码运行后会3秒判断一次当前窗口,直到success或者点no不继续等待。本机运行已经测试通过了。
WaitSpecifiedTitleActivated "想要等待的Title"
Function WaitSpecifiedTitleActivated(strTitle)
Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
Do
WScript.Sleep 3000
intFlag = oAutoIt.WinActive(strTitle)
strCurTitle = CStr(oAutoIt.WinGetTitle("[Active]"))
WScript.Echo strCurTitle
If intFlag = 1 Then
MsgBox "Success"
ElseIf (strCurTitle <> "a.txt") And (strCurTitle <> "b.txt") And (strCurTitle <> "c.exe") Then
MsgBox "Not Exist"
btnFlag = MsgBox("Continue wait window with title "&strTitle&"?",vbYesNo,"Friendly Information")
End If
Loop Until (intFlag = 1 Or btnFlag = vbNo)
End Function
补充:请确认下所指定的窗口是Active的,另外就是确定标题是正确咯,比如文本窗口后面a.txt - Notepad需要写完整的,当然也可以使用正则表达式来匹配,这需要稍微修改下代码,可以用标题很简单的窗口测试下看看
参考资料: http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询