gpt4 book ai didi

c++ - 休眠失败时的 Windows 通知

转载 作者:可可西里 更新时间:2023-11-01 11:59:42 25 4
gpt4 key购买 nike

我正在使用 C++ 和 WinAPI 进行编码,为了使计算机休眠,我使用了以下调用:

SetSuspendState(TRUE, NULL, FALSE);

但是如果计算机安装了更大的 RAM 阵列,休眠会失败。

所以我想知道,如果休眠失败,Windows 会发送任何通知吗?如果没有,如何判断我的休眠请求是否失败?

最佳答案

看起来没有直接的方法来检测休眠 [更正:我错了。请参阅 Fowl 的回答。] 直到 Windows 8(请参阅 PowerRegisterSuspendResumeNotification )。但我想你可以空闲循环并观察系统时间。如果时间突然向前跳动,则您已成功休眠(并恢复!),如果这在一分钟左右内没有发生,则请求可能失败。我想你可以使用 GetTickCount64功能,它对系统时间的变化不敏感,但显然包括 sleep 时间的偏差。如果这不起作用,请使用 GetSystemTimeAsFileTime但也要注意 WM_TIMECHANGE消息。

您还可以检查有问题的系统,当休眠失败时 Windows 是否将任何内容写入事件日志。如果是这样,您的应用程序可以监视相关条目的事件日志。这将是一种更可靠的方法。

关于c++ - 休眠失败时的 Windows 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11370305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com