2016-10-30 3 views
0

Я пытаюсь сделать программу, которая делает звук каждый час, как бы я это сделал?Как постоянно проверять изменения в системном времени?

Я думал, может быть, постоянно проверять системное время, и если он равен «1:00 2:00 3:00 и т. Д.», Тогда воспроизводите звук, но я не знаю, как это сделать, некоторые помощь была бы оценена :)

+3

Вы уже ответили на поводу. Попробуйте Googling ** проверить системное время на <язык или платформу, которую вы используете> **, и сделать что-то подобное. Конечно, могут быть лучшие общие проекты, такие как Unix crontab, но Google действительно ваш друг для этих небольших задач программирования. –

+1

Ya, проверить время системы Google, а затем поместить этот код внутри обработчика событий тика таймера, если вы хотите периодически его проверять. – soohoonigan

+2

Вы можете использовать [Таймер] (https://msdn.microsoft.com/en-us/library /system.windows.forms.timer(v=vs.110).aspx) и установите его интервал на оставшееся время. Затем, когда событие Tick будет поднято, вычислите время до следующего часа и установите его интервал соответственно - это позволит избежать дрейфа. Другие таймеры доступны, если вы не делаете это в форме Windows. –

ответ

0

Добавить таймер, установленный интервал для 1000 (1 секунда) и в Tick случае проверить текущее время

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 
     'check time here and put it in Label1 
     Label1.Text = TimeOfDay.ToString("hh:mm:ss") 

     'if currenttime = alarmtime then do something 
     If TimeOfDay.ToString("hh:mm:ss") = "10:01:00" Then Beep() 
    End Sub 

для получения дополнительной информации, как читать текущее время: https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.dateandtime(v=vs.110).aspx

0

Создайте таймер, установите интервал для 500 миллисов econds (.5s), установка на 1 секунду может привести к пропущению галочки. Это запустит событие галочки, проверьте, соответствуют ли текущие минуты времени и секунды нулю, затем срабатывает. Таймер отключается между звуковым обстрелом, если таймер снова проверяет во втором (поскольку таймер вызывается каждые полсекунды).

ReadOnly _tmr As New Timer 
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    _tmr.Interval = 500 
    AddHandler _tmr.Tick, AddressOf tmr_Tick 
    _tmr.Enabled = True 
End Sub 

Private Sub tmr_Tick(sender As Object, e As EventArgs) 
    Dim curDateTime As DateTime = Now 

    If curDateTime.Minute = 0 And curDateTime.Second = 0 Then 
     _tmr.Enabled = False 
     PlaySound() 
     _tmr.Enabled = True 
    End If 

End Sub 

Private Sub PlaySound() 
    '// Play Sound 
End Sub 
Смежные вопросы