首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么向WebBrowser1加载的网页模拟对话框“确定”点击

2012-12-17 
如何向WebBrowser1加载的网页模拟对话框“确定”点击?用WebBrowser加载一个网页:html xmlnshttp://www.w3

如何向WebBrowser1加载的网页模拟对话框“确定”点击?
用WebBrowser加载一个网页:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>无标题页</title>
</head>
<body>
<script language="javascript">
alert("OK");
</script>    
</body>
</html>

这个网页加载后会弹出一个“确定”的对话框。

我在VB6中这样写代码:
Private Sub Command5_Click()
    Timer1.Interval=1000
    Timer1.Enabled = True  
    WebBrowser1.Navigate App.Path & "\page.htm"
End Sub

Private Sub Timer1_Timer()
    Debug.Print "SendKey"
    SendKeys "{ENTER}"
    Debug.Print "EndKey"
    Timer1.Enabled = False
End Sub

目的是想当网页被加载,网页的对话框弹出后,程序能模拟人点击Webbrowser1中网页中的“确定”按钮。但是我发现,当
WebBrowser1.Navigate App.Path & "\page.htm"一句执行后,只有当人为点击的网页弹出的对话框(Javascript中的alert函数)中的“确定”时,Timer1_Timer的代码才被执行。
那么怎么才能用WebBrowser加载一个有弹出提示框的网页后,能让程序模拟实现“确定”点击?
[最优解释]
用FindWindow找到Microsoft Internet Explorer子窗口
然后 用:GetParent找到这个窗口的父窗口
再用GetWindowText找到父窗口的字符串
判断是否是自己主程序的窗口
如果是
SendMessage(WM_CLOSE)

[其他解释]

引用:
用FindWindow找到Microsoft Internet Explorer子窗口
然后 用:GetParent找到这个窗口的父窗口
再用GetWindowText找到父窗口的字符串
判断是否是自己主程序的窗口
如果是
SendMessage(WM_CLOSE)

你说的这些我都想过,但问题是:你把这些代码放在哪执行呢?
放在:WebBrowser1.Navigate App.Path & "\page.htm"前面,它还没弹出那个alert提示
放在后面,你不点Javascript的alert的确定,后面的代码就不会去执行!
[其他解释]
除非放在另一个EXE程序中,但那样很难同步SendMessage的时机
[其他解释]
参考这里
[其他解释]
我本以为用Timer,可以相当于是新启一个线程,没想到Timer中的代码也要等javascript的alert被点“确定”后才能被执行……
[其他解释]
这里
[其他解释]
引用:
参考这里

好的,研究下先
[其他解释]
这里有3种
[其他解释]
这个不知道可以不可以
[其他解释]
引用:

你很NB,不愧是专家!

热点排行