图 1.
我之前写的来查学校宿舍流量的程式也是会
他是因为网页的凭证过期了
会跳出跟使用者确认是否要继续流览的对话框
像附图那样
之前因为一直想不到解法
所以就在浏览网页前先popup另一个提示
解是一下那个视窗出现的原因
顺便告诉用者该按哪个
前几天又把这个程式挖出来更新
花了点时间想到解法
大致上的做法是
WebBrowser 一去Navigate url之后
开一个计时器用API去列举所有视窗(find windows的方向应该是对的)
然后找出那个弹出提示的视窗之后(我用title去比对)
对那个视窗送出按键event把他关闭(或按确定)
用到的API有
* FindWindow (依据给的条件列举视窗的hWnd)
* SetForegroundWindow (将上面API找到的hWnd带进这个API使其取得焦点)
* SendKeys (这VB6内建的函数 送出 "^y")
理论上这样的做法有点不太妥
因为可能会有相同TITLE但是不是自己成是造成的视窗
或者Set Foreground不顺利把Key send给别的视窗
不过实测之后发现其实还好
只有一瞬间而已 可以正常长达到要求
.Net 应该也可以比照办理 参考看看
片段
复制程式
Private Sub timer_AutoCloseTip_Timer()
Dim hw As Long
hw = FindWindow(vbNullString, "安全性警讯")
If hw > 0 Then
SetForegroundWindow hw
SendKeys "^y"
timer_AutoCloseTip.Enabled = False
End If
End Sub