Код | ' в модуль запишем следующее Private Declare Function KillTimer Lib "user32" _ (ByVal hWnd As Long, ByVal nIDEvent 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 SetForegroundWindow Lib "user32" _ (ByVal hWnd As Long) As Long
Public Const NV_CLOSEMSGBOX As Long = &H5000&
Public Sub TimerProc(ByVal hWnd As Long, ByVal uMsg As Long, _ ByVal idEvent As Long, ByVal dwTime As Long)
KillTimer hWnd, idEvent Select Case idEvent Case NV_CLOSEMSGBOX 'хотим закрыть окно после 4 секунд Dim hMessageBox As Long 'чтобы MsgBox мог закрыться нормально надо определить по кокому имени будет закрываться hMessageBox = FindWindow("#32770", "MsgBox") If hMessageBox Then Call SetForegroundWindow(hMessageBox) SendKeys "{enter}" End If End Select
End Sub
|
Код | ' на форму напишите следующее Private Declare Function SetTimer Lib "user32" _ (ByVal hWnd As Long, ByVal nIDEvent As Long, _ ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Sub cmdShowMsg_Click()
'здесь нам настраиваится час 4 секунды (4000 милисекунд) SetTimer hWnd, NV_CLOSEMSGBOX, 4000, AddressOf TimerProc If MsgBox("Сообщение автоматически закроеться после 4 секунд. _ Повторить или конец ?", vbRetryCancel + vbDefaultButton1, _ "MsgBox") = vbRetry Then MsgBox "Повторить" Else MsgBox "Конец" End If End Sub
|
|