Я разрабатываю внутреннее приложение.NET, которое будет запущено на VM (с VMware), и хотеть знать, существует ли способ получить уведомления от системных событий VM (как приостановка, возобновленная, и т.д.)
Кто-либо знает об удобном способе сделать это? Инструменты VMware виртуальной машины установили, который обеспечивает API.NET для сцепления событий?
Править: В частности, я интересуюсь тем, когда система только что возобновилась. Я предположил, что это не соответствует никакому "регулярному" системному событию Windows (в конце концов, смысл приостановки и возобновления, что VM - то, что 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();
}
Есть ли какие-нибудь специфические для vmware события, которые вы хотели бы услышать? В противном случае кажется, что вам лучше слушать эти события из Windows
Взгляните на WM_POWERBROADCAST - http://www.pinvoke.net/default.aspx/user32 .RegisterPowerSettingNotification