如何使机器保持唤醒状态?

我有一个用Java编写的类似服务器的软件,可以在Windows和OS X上运行(它不是在服务器上运行的,而只是一个普通用户的PC - 类似于torrent客户端。我希望软件在机器处于活动状态时向操作系统发出信号,以保持机器处于唤醒状态(防止其进入睡眠模式)。

当然,我不期望有一个跨平台的解决方案,但我希望有一些非常小的C程序/脚本,我的应用程序可以生成这些程序/脚本来通知操作系统保持清醒。

有什么想法吗?


答案 1

我使用此代码来防止我的工作站锁定。它目前仅设置为每分钟移动一次鼠标,您可以轻松调整它。

这是一个黑客,而不是一个优雅的解决方案。

import java.awt.*;
import java.util.*;
public class Hal{

    public static void main(String[] args) throws Exception{
        Robot hal = new Robot();
        Random random = new Random();
        while(true){
            hal.delay(1000 * 60);
            int x = random.nextInt() % 640;
            int y = random.nextInt() % 480;
            hal.mouseMove(x,y);
        }
    }
}

答案 2

在 Windows 上,使用 SystemParametersInfo 函数。这是一个瑞士军队风格的功能,可让您获取/设置各种系统设置。

要禁用屏幕关闭,例如:

SystemParametersInfo( SPI_SETPOWEROFFACTIVE, 0, NULL, 0 );

只要确保在完成后将其设置回去...