關于定時關閉詢問對話框的一點體會

發表于:2007-07-01來源:作者:點擊數: 標簽:
用過瑞星殺毒軟件的朋友都知道,他可以定時關閉詢問對話框。詢問對話框的實現很簡單,調用 vb 中提供的msgbox就可以實現了,可是問題是詢問對話框是模式對話框,不關閉它的話,下面的代碼無法繼續執行,這一點也多多少少給朋友們造成了一些困饒。那么怎么解

       用過瑞星殺毒軟件的朋友都知道,他可以定時關閉詢問對話框。詢問對話框的實現很簡單,調用vb中提供的msgbox就可以實現了,可是問題是詢問對話框是模式對話框,不關閉它的話,下面的代碼無法繼續執行,這一點也多多少少給朋友們造成了一些困饒。那么怎么解決呢,我的方案是調用api函數messagebox代替msgbox,結合timer控件實現自動關閉,閑話少說,看代碼,下面的代碼演示了如何在10秒中之后關閉對話框(窗體上一個按鈕,一個timer控件):

Option Explicit

Const MB_DEFBUTTON1 = &H0&
Const MB_DEFBUTTON2 = &H100&
Const MB_DEFBUTTON3 = &H200&
Const MB_ICONASTERISK = &H40&
Const MB_ICONEXCLAMATION = &H30&
Const MB_ICONHAND = &H10&
Const MB_ICONINFORMATION = MB_ICONASTERISK
Const MB_ICONQUESTION = &H20&
Const MB_ICONSTOP = MB_ICONHAND
Const MB_OK = &H0&
Const MB_OKCANCEL = &H1&
Const MB_YESNO = &H4&
Const MB_YESNOCANCEL = &H3&
Const MB_ABORTRETRYIGNORE = &H2&
Const MB_RETRYCANCEL = &H5&
Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetDlgItem Lib "user32" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const BM_CLICK = &HF5
Dim i As Long
Private Sub Command1_Click()
     Timer1.Enabled = True
     MessageBox Me.hwnd, "this is test", App.Title, MB_OK
     Timer1.Enabled = False
End Sub

Private Sub Form_Load()
    Timer1.Enabled = False
    Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()

    i = i + 1
    If i >= 10 Then
        Dim dlghwnd As Long
        Dim buttonhwnd As Long
        dlghwnd = FindWindow("#32770", App.Title)
        buttonhwnd = GetDlgItem(dlghwnd, 2) ´其中的2,用spy++獲得
        SendMessage buttonhwnd, BM_CLICK, 0&, ByVal 0&
    End If
   
End Sub


原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97