C:如何检查计算机是否锁定/睡眠?

Anu*_*rty 4 c windows

是否有任何C函数来检查计算机是否会sleep,hibernatelocked从这些状态唤醒?

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();
}
Run Code Online (Sandbox Code Playgroud)

以同样的方式我想检查锁定/睡眠/休眠.

如@ddriver所述,在c中包装c ++代码(在链接中提供)的一种可能方法

但是在C中根本不可能吗?

Ser*_*sta 6

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

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