用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 SubPrivate 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加载一个有弹出提示框的网页后,能让程序模拟实现“确定”点击?

解决方案 »

  1.   

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

  2.   

    你说的这些我都想过,但问题是:你把这些代码放在哪执行呢?
    放在:WebBrowser1.Navigate App.Path & "\page.htm"前面,它还没弹出那个alert提示
    放在后面,你不点Javascript的alert的确定,后面的代码就不会去执行!
      

  3.   

    除非放在另一个EXE程序中,但那样很难同步SendMessage的时机
      

  4.   

    我本以为用Timer,可以相当于是新启一个线程,没想到Timer中的代码也要等javascript的alert被点“确定”后才能被执行……