Параметр Explicit
частный объявить функцию PtrSafe Findwindowa Lib "user32" (_
ByVal lpClassName в виде строки,_
ByVal lpWindowName как строка) как Лонг
Private объявите функцию PtrSafe Setwindowpos Lib "user32" ( _
Как byval hwnd и как долго, _
ByVal hWndInsertAfter как долго,_
Бывал Х Как Долго,_
Бывал Я Так Долго,_
Бывал СХ как долго,_
Бывал Сай так долго,_
Бывал wFlags как долго) как долго
Частная Функцию Declare PtrSafe Значение SetTimer Либ "user32" (_
Как byval hwnd и как долго, _
NIDEvent бывал так долго, _
UElapse бывал так долго, _
LpTimerfunc бывал как долго) как долго
Private объявите функцию Ptrsafe KillTimer Lib "user32" ( _
Как byval hwnd и как долго, _
NIDEvent бывал как долго) как долго
Private Const SWP_NOSIZE = &H1
Частный Const SWP_NOMOVE = &H2
Частные флаги Const As Long = SWP_NOMOVE или SWP_NOSIZE
Private Const HWND_TOPMOST = -1
частный TimerID до тех пор ' нужен идентификатор таймера, чтобы в конечном итоге выключить таймер. Если идентификатор таймера не 0, то таймер работает
общественные суб ActivateTimer(nSeconds бывал так долго)
' вызов SetTimer принимает миллисекунды, поэтому преобразуйте в секунды
nSeconds = nSeconds * 1000
' проверьте, работает ли таймер перед вызовом SetTimer
Если TimerID <> 0, То Вызываем DeactivateTimer
TimerID = значение SetTimer(0, 0, nSeconds, оператором addressof Reminder_Helper)
Если TimerID = 0, то MsgBox " не удалось активировать таймер."
Конец Sub
Public Sub DeactivateTimer ()
Dim lSuccess As Long
Если TimerID <> 0 тогда
lSuccess = KillTimer (0, TimerID)
Если lSuccess = 0, то
MsgBox " не удалось отключить таймер."
Остальное
TimerID = 0
Конец If
Конец If
Конец Sub
частная суб Reminder_Helper(как byval hwnd и как долго, uMsg бывал так долго, idevent бывал так долго, Systime бывал в Long)
Dim ReminderWindowHWnd Как Вариант
Если idevent = TimerID, то
В Резюме Ошибки Рядом
ReminderWindowHWnd = FindWindowA (vbNullString, "1 напоминание")
Setwindowpos и ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, флаги
DeactivateTimer
Конец Если
Конец Sub