我有一个用Java编写的服务器软件,可以在Windows和OS X上运行。(它不是在服务器上运行,而是在普通用户的PC上运行--有点像torrent客户端。)我希望软件向操作系统发出信号,使机器在活动时保持唤醒(防止其进入睡眠模式)。
当然,我不希望有一个跨平台的解决方案,但我希望有一些非常小的C程序/脚本,我的应用程序可以产生通知操作系统保持清醒。
有什么想法吗?
发布于 2008-09-09 21:31:15
我使用这段代码来防止我的工作站被锁定。它目前只被设置为每分钟移动一次鼠标,但你可以很容易地调整它。
这只是一个技巧,而不是一个优雅的解决方案。
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);
}
}
}发布于 2008-09-09 21:05:25
在Windows上,使用SystemParametersInfo函数。这是一个瑞士军队风格的功能,可以让你获得/设置各种系统设置。
要禁用屏幕关闭,例如:
SystemParametersInfo( SPI_SETPOWEROFFACTIVE, 0, NULL, 0 );做完后一定要把它调回原处...
发布于 2012-04-23 19:59:38
添加到上面SCARCHER2的代码片段中,并仅移动鼠标1个像素。我已经将鼠标移动了两次,这样即使指针处于极端位置,也会发生一些变化:
while(true){
hal.delay(1000 * 30);
Point pObj = MouseInfo.getPointerInfo().getLocation();
System.out.println(pObj.toString() + "x>>" + pObj.x + " y>>" + pObj.y);
hal.mouseMove(pObj.x + 1, pObj.y + 1);
hal.mouseMove(pObj.x - 1, pObj.y - 1);
pObj = MouseInfo.getPointerInfo().getLocation();
System.out.println(pObj.toString() + "x>>" + pObj.x + " y>>" + pObj.y);
}https://stackoverflow.com/questions/52874
复制相似问题