gpt4 book ai didi

C: 如何查看电脑是否被锁定/休眠?

转载 作者:可可西里 更新时间:2023-11-01 14:43:41 27 4
gpt4 key购买 nike

C 中是否有任何函数可以检查计算机是否进入 sleep 休眠锁定 并从这些状态唤醒?

msdn它们为 C#C++ 提供,但不为 C 提供。我的操作系统是windows7

如下是我用来检查启动程序和终止程序之间的持续时间的代码(关闭系统将终止程序,因此可以测量持续时间)。

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include<time.h>
clock_t start_time=0;
void bye (void)
{
FILE *read,*write;
write=fopen("F:\\count.txt","w");
clock_t end_time=clock();
fprintf(write,"Time: %d",(end_time-start_time)/CLOCKS_PER_SEC);
fclose(write);
}

int main (void)
{
start_time=clock();
atexit (bye);
//exit (EXIT_SUCCESS);
getch();
}

我想以同样的方式检查锁定/ sleep /休眠。

@ddriver 提到的一种将 c++ 代码(在链接中提供)包装成 c 的可能方法

但在 C 中根本不可能吗?

最佳答案

WinAPI 通常至少具有与 .NET 框架相同的可能性。你要的是 PowerManagement API .

您必须注册才能收到 PowerSettingNotificationEvents使用 RegisterPowerSettingNotification 函数。不幸的是,它在 GUI 应用程序中的使用方式有所不同,在 GUI 应用程序中,您为窗口提供句柄,每次系统即将更改状态(其中一种挂起模式或休眠模式)时,该窗口都会收到 WM_POWERBROADCAST 消息模式),以及用于注册 HandlerEx 回调的非 GUI(通常是服务),dwControl 参数为 SERVICE_CONTROL_POWEREVENT,dwEventType 为 PBT_POWERSETTINGCHANGE。

关于C: 如何查看电脑是否被锁定/休眠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32080143/

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