Hola, Elvis.
Respecto a lo que solicitas, creo que hace unos dos meses escribí un mensaje en este mismo foro en el que respondía a uno de los usuarios como apagar el sistema.
He buscado, personalmente, en la lista de posts y aquí tienes el link a dicho mensaje:
http://lawebdelprogramador.com/news/mostrar_new.php?id=93&texto=Visual+Basic&n1=324578&n2=3&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
Simplemente, copia el código que encontrarás, en un módulo nuevo.
En el mismo mensaje explico como usar la función para apagar el sistema con un ejemplo de llamada a la misma.
El código, según estoy informado, funciona, así que no debería darte problemas.
No obstante, en caso de duda, comunícalo en este hilo.
En relación a la instrucción que llame a esa función a una hora determinada... no creo que sea demasiado complicado hacerlo.
Una forma sencilla podría ser añadir un control Timer al proyecto y establecer su propiedad Interval a 1000 (1 segundo). Cada vez que pase un segundo, que compruebe la hora actual -eso si necesita precisión de segundos-. Si no se tienen en cuenta los segundos, sería mejor establecer el Interval a 60000 para que compruebe la hora cada minuto y, de esta manera, el programa consumiría menos recursos.
Pero esto es solo un simple consejo. Creo que existen muchos otros métodos para hacer que se llame a la función de Apagar el Sistema a una hora determinada.
Espero que esta información que te he proporcionado te resulte clara y precisa y te ayude a resolver tu problema.
Si tienes dudas, consúltalo aquí.
Hasta la próxima,
Zoto