这里要用到VB提供的一个部件WindowsMediaPlayer,在 “工程----部件-”里面,在下拉列表找到WindowsMediaPlayer ,勾上。
新建一工程,窗体名AlarmForm.
放置一个Timer,名字为Timer1。放置一个Label,名字为lblTime ,放置一个WindowsMediaPlayer,名字为 WindowsMediaPlayer1,
代码如下:
Option Explicit
Dim AlarmTime
Const conMinimized = 1
Private Sub Form_Click()
AlarmTime = InputBox("输入启动闹钟的时间", "VB 闹钟", AlarmTime)
If AlarmTime = "" Then Exit Sub
If Not IsDate(AlarmTime) Then
MsgBox "您输入的时间无效。"
Else ' 从 InputBox 返回的字符串使有效时间,
AlarmTime = CDate(AlarmTime) ' 将它作为一个日期/时间值存储在 AlarmTime 中。
End If
End Sub
Private Sub Form_Load()
AlarmTime = ""
End Sub
Private Sub Form_Resize()
If WindowState = conMinimized Then ' 如果窗体被最小化, 在标题处显示时间。
SetCaptionTime
Else
Caption = "闹钟"
End If
End Sub
Private Sub SetCaptionTime()
Caption = Format(Time, "Medium Time") ' 使用中等时间格式显示时间。
End Sub
Private Sub Timer1_Timer()
Static AlarmSounded As Integer
If lblTime.Caption <> CStr(Time) Then
' 当前秒数与显示秒数不同。
If Time >= AlarmTime And Not AlarmSounded Then
MsgBox "启动闹钟在 " & Time
AlarmSounded = True
WindowsMediaPlayer1.URL = "H:\VB设计\gmidi01.mid" ' 这里是声音文件的路径
ElseIf Time < AlarmTime Then
AlarmSounded = False
End If
If WindowState = conMinimized Then
' 如果处于最小化状态, 每分钟都需更新窗体标题。
If Minute(CDate(Caption)) <> Minute(Time) Then SetCaptionTime
Else
' 否则每秒钟对标签的标题进行更新。
lblTime.Caption = Time
End If
End If
End Sub