Yo me suelo conectar en remoto a un equipo de mi oficina, el cual luego queda en modo "Sleep", o sea suspendido, cuando no lo voy a usar. Cuando lo quiero volver a usar lo despierto remotamente.

El caso es que desde Terminal Server (escritorio remoto) se puede apagar el equipo (con shutdown.exe), cerrar tu sesión e incluso hibernarlo, pero no hay una forma directa de poner el equipo en modo de suspensión, de forma que luego arranque instantáneamente.

Así que he hecho una pequeña utilidad con una sólo línea de código sacando partido a un nuevo método de la clase Application de Windows Forms que apareció con .NET 4.0: SetSuspendState.

Este método permite forzar la suspensión o hibernación del equipo actual siempre que nuestro usuario tenga permisos para ello. Así que todo el código de la aplicación, incluyendo  gestión de posibles excepciones, es este:

SuspenderCodigo

Más sencillo imposible.

Para el que no quiera pasar el trabajo de compilarlo le dejo el ejecutable en un zip, y también el proyecto de consola si lo quieres compilar.

Nota: El ejecutable ocupa doscientas y pico KB por culpa del icono del progama que tiene muchas versiones del mismo, sino serían sólo 5 KB :-)

¡Espero que te sea útil!

Escrito por un humano, no por una IA