定时自动关闭MsgBox

Public   Class Form1

    
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As StringByVal lpWindowName As StringAs Int32
    
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hWnd As IntPtr, ByVal msg As IntegerByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer
    
Const WM_CLOSE = &H10

    
Private tmr As Timers.Timer

    
Private Sub Button1_Click(ByVal sender As ObjectByVal e As System.EventArgs) Handles Button1.Click
        StartKiller()
        
MsgBox("我会在3秒钟后自动关闭!", MsgBoxStyle.OkOnly Or MsgBoxStyle.Information, "TestMsgBox")
    
End Sub


    
Private Sub StartKiller()
        tmr 
= New Timers.Timer(3000)
        
AddHandler tmr.Elapsed, AddressOf Timer_Tick
        tmr.Start()
    
End Sub


    
Private Sub KillMsgBox()
        
Dim ptr As IntPtr = FindWindow(Nothing"TestMsgBox")
        
If ptr <> IntPtr.Zero Then PostMessage(ptr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero)
    
End Sub


    
Private Sub Timer_Tick(ByVal sender As ObjectByVal e As Timers.ElapsedEventArgs)
        KillMsgBox()
        tmr.Stop()
    
End Sub


End Class

你可能感兴趣的:(timer,String,function,object,Integer,button)