No se en que lenguaje lo quieres hacer, lo que debes hacer es trabajar con los horarios del PC, y que al encender el foco este permanesca en un delay con el tiempo que desees que el foco permanezca encendido. puede ser por ejemplo 1 hora y en cuenta regresiva, cuando el contador llegue a cero has que el pulso que sale por el LPT sea 0, asi el foco se apagara.
Especificame bien en que quieres ayuda, ya que asi seria solo el algoritmo, debes implementarlo segun el lenguaje, si no puedes trabajar con el reloj de windows, puedes hacer un bucle de 24 hs y a partir de ahi manejas como si fuera un reloj normal. Saludos