Я разрабатываю собственное приложение .NET, которое будет работать на ВМ (с VMware), и хочу узнать, есть ли способ получать уведомления о системных событиях ВМ (таких как приостановка, возобновление и т. Д.)
Кто-нибудь знает удобный способ сделать это? На виртуальной машине установлены VMware Tools, предоставляет ли .NET API для перехвата событий?
РЕДАКТИРОВАТЬ: В частности, меня интересует, когда система только что возобновила. Я предположил, что это не соответствует никаким «обычным» системным событиям Windows (в конце концов, весь смысл приостановки и возобновления виртуальной машины заключается в том, что Windows не знает, что произошло). Я ошибаюсь? Будет ли это вызвать событие?
РЕДАКТИРОВАТЬ 2: Я написал это быстрое консольное приложение для перехвата всех системных событий, о которых я мог думать, и ничего не получил, когда я приостановил / возобновил:
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();
}