检测Windows中的总RAM更改

时间:2010-11-11 00:29:14

标签: c windows winapi

如果系统RAM的总量发生了变化,Windows中是否会有回调通知我的应用程序?

1 个答案:

答案 0 :(得分:3)

如果您可以在课程_InstanceCreationEvent上选择_InstanceDeletionEventWin32_PhysicalMemory,则可以通过WMI执行此操作。

示例代码here(WMI是在C或C ++中使用的熊,抱歉 - C#会更容易)。只需在此处使用Win32_PhysicalMemory而不是Win32_Process进行查询:

hres = pSvc->ExecNotificationQueryAsync(
    _bstr_t("WQL"), 
    _bstr_t("SELECT * " 
        "FROM __InstanceCreationEvent WITHIN 1 "
        "WHERE TargetInstance ISA 'Win32_Process'"), 
    WBEM_FLAG_SEND_STATUS, 
    NULL, 
    pStubSink);

您还需要第二次通话才能__InstanceDeletionEvent检测。