我正在開發一個將在VM(與VMware)上運行的內部.NET應用程序,並且想知道是否有辦法從VM系統事件中獲取通知(如掛起,恢復等).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();
}
你試過標準的Windows事件嗎? – 2010-06-09 20:39:00
我已經放棄尋找一個鉤子,並用計時器解決了這個問題,但如果有人有更好的解決方案,我很樂意聽到它! – 2010-10-07 19:14:41