Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET中的VMware事件挂钩_.net_Virtual Machine_Vmware - Fatal编程技术网

.NET中的VMware事件挂钩

.NET中的VMware事件挂钩,.net,virtual-machine,vmware,.net,Virtual Machine,Vmware,我正在开发一个内部的.NET应用程序,它将在虚拟机上运行(使用VMware),我想知道是否有办法从虚拟机系统事件(如挂起、恢复等)获取通知 有人知道一种方便的方法吗?虚拟机安装了VMware工具,这是否为挂接事件提供了.NET API 编辑:我特别感兴趣的是系统刚刚恢复的时间。我假设这与任何“常规”Windows系统事件都不对应(毕竟,挂起和恢复VM的关键是Windows不知道发生了什么)。我弄错了吗?这会引发一个事件吗 编辑2:我编写了这个快速控制台应用程序来钩住我能想到的所有系统事件,当我挂

我正在开发一个内部的.NET应用程序,它将在虚拟机上运行(使用VMware),我想知道是否有办法从虚拟机系统事件(如挂起、恢复等)获取通知

有人知道一种方便的方法吗?虚拟机安装了VMware工具,这是否为挂接事件提供了.NET API

编辑:我特别感兴趣的是系统刚刚恢复的时间。我假设这与任何“常规”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上监听这些事件



看看--

好的,我已经放弃了寻找一个简单的.NET钩子,但是如果其他人偶然发现了这个问题,想知道我是如何解决的:

我的应用程序中有一个计时器,它会定期(每10秒)启动,并将当前时间与上次时间进行比较。如果时间明显长于10秒,我假设计算机已经休眠或暂停,并根据需要刷新我的应用程序


有点麻烦,但计时器不会增加程序的CPU或内存使用量,所以我认为这并不可怕。

您尝试过标准windows事件吗?我已经放弃寻找挂钩,并用计时器解决了这个问题,但如果有人有更好的解决方案,我会很高兴听到!我不知道哪个系统事件会对应“简历”。。。请参阅编辑。如果可以检测到它进入待机状态,则可以设置某种标志,表明应用程序处于待机状态——如果应用程序开始运行并看到它处于待机状态,则可以推断它必须刚刚恢复。如果它进入待机状态,该标志将起作用,但是挂起VM与待机电源模式不同。在文档中没有发现任何有希望的东西——检测挂起操作可能不可能(如果应用程序需要一段时间才能完成,是否要延迟挂起?)。。。因此,也有可能没有任何通知客人它已恢复