Ich entwickle eine In-House-.NET-Anwendung, die auf einer VM (mit VMware) ausgeführt wird, und möchte wissen, ob es eine Möglichkeit gibt, Benachrichtigungen von VM-Systemereignissen (wie Suspendieren) , wieder aufgenommen, usw.)VMware Event-Hooks in .NET
Wer weiß von einem bequemen Weg, das zu tun? Auf der virtuellen Maschine sind VMware Tools installiert. Bietet diese eine .NET API für das Einhängen von Ereignissen?
EDIT: Insbesondere interessiert mich, wenn das System gerade wieder aufgenommen hat. Ich ging davon aus, dass dies keinem "normalen" Windows-Systemereignis entspricht (schließlich besteht der Hauptpunkt des Aussetzens und Wiederaufnehmens einer VM darin, dass Windows keine Ahnung hat, was passiert ist). Täusche ich mich? Wird das ein Ereignis auslösen?
EDIT 2: Ich schrieb dieses schnelle Konsole App, alle Systemereignisse Haken ich denken konnte, und nichts, wenn ich/resume aussetzen:
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();
}
Haben Sie die Standard-Windows-Ereignisse ausprobiert? –
Ich habe es aufgegeben, nach einem Haken zu suchen und löste das mit einem Timer, aber wenn jemand eine bessere Lösung hat, würde ich mich freuen, es zu hören! –