Estoy desarrollando una aplicación .NET interna que se ejecutará en una máquina virtual (con VMware), y quiero saber si hay una manera de obtener notificaciones de los eventos del sistema VM (como suspender , reasumido, etc.)Ganchos de eventos de VMware en .NET
¿Alguien sabe de una manera conveniente de hacer eso? La máquina virtual tiene instaladas VMware Tools, ¿eso proporciona una API .NET para conectar eventos?
EDIT: En particular, estoy interesado en cuando el sistema acaba de reanudarse. Supuse que esto no se corresponde con ningún evento de sistema de Windows "normal" (después de todo, el objetivo de suspender y reanudar una VM es que Windows no tiene idea de lo que sucedió). ¿Estoy equivocado? ¿Eso desencadenará un evento?
EDIT 2: Escribí esta aplicación de consola rápida para conectar todos los eventos del sistema que podría pensar en, y obtener nada cuando me suspensión/reanudación:
static void Main(string[] args) {
SystemEvents.DisplaySettingsChanged += (sender, e) => Console.WriteLine("Display settings changed");
SystemEvents.EventsThreadShutdown += (sender, e) => Console.WriteLine("Events thread shutdown");
SystemEvents.PowerModeChanged += (sender, e) => Console.WriteLine("Power mode changed");
SystemEvents.SessionEnding += (sender, e) => Console.WriteLine("Session ending");
SystemEvents.SessionSwitch += (sender, e) => Console.WriteLine("Session switch");
SystemEvents.UserPreferenceChanging += (sender, e) => Console.WriteLine("User preference changing");
Console.ReadLine();
}
¿Has probado los eventos de Windows estándar? –
He renunciado a buscar un anzuelo y lo resolví con un cronómetro, pero si alguien tiene una mejor solución, ¡me alegra escucharlo! –