圖 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