Windows:防止睡眠模式 - C中的最小版本

时间:2012-07-17 10:36:58

标签: c windows dev-c++

我希望在Windows下拥有最简单的C程序版本,以防止操作系统在运行时进入睡眠模式或休眠模式。目前我有这个:

#include <windows.h>

int main(int argc, char **argv)
{
    while (1)
    {
        SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);
        Sleep(300*1000); /* wait 300 seconds */
    }
    return 0;
}

然而,这不起作用 - 如果我尝试使用Orwell Dev-C ++ 5.2.0.3编译它,我会收到此错误:

[链接器错误] C:\ Users \ bachmann \ AppData \ Local \ Temp \ ccD8l1tp.o:disable_sleep.c :(。text + 0x1e):对“SetThreadExecutionState”的未定义引用    collect2:ld返回1退出状态

那有什么不对?根据{{​​3}},我认为这应该有效。

1 个答案:

答案 0 :(得分:2)

这是一个链接器错误:您需要与kernel32.lib链接。从问题中链接的页面:

Requirements

Minimum supported client|Windows XP
Minimum supported server|Windows Server 2003
Header|Winbase.h (include Windows.h)
Library|Kernel32.lib                          <---------
DLL|Kernel32.dll