Mmm, utilizza questo programma (fatto da me )

Per prima cosa crea due textbox (orario e orariospegnimento) e un timer (tempo). Aggiungi anche un command button (avvia) A scelta puoi mettere delle label

codice:
'Dichiarazioni
Public Const EWX_SHUTDOWN = 1 
Public Const EWX_FORCE = 4

Declare Function ExitWindowsEx Lib "user32" Alias _
"ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved _
As Long) As Long

Private Sub Form_Load
Tempo.Enabled = False
Tempo.Interval = 6000
Orario.Text = Time
End Sub

Private Sub Avvia_Click
If OrarioSpegnimento.Text = "" Then
 MsgBox "Non hai inserito nessun orario"
 Exit Sub
End If
Timer1.Enabled = True
OrarioSpegnimento.Locked = True
End Sub

Private Sub Tempo_Timer
 If Me.OrarioSpegnimento.Text = Time
 t& = ExitWindowsEx(EWX_FORCE OR EWX_SHUTDOWN, 0)
End Sub
Mmm ovviamente devi mettere un decente controllo se l'orario inserito è corretto (deve essere OO.MM.SS in ogni caso.)
Il fatto è abbastanza rudimentale: dato che fa un'uguaglianza a livello di carattere, gli orari devono coincidere anche come formato(10:25:10 non è uguale a 10.25.10)
A te perfezionare il mio abbozzo