以下のステップでマウスポインタを動かすことができます。
-
MouseInfo.getPointerInfo
で現在のマウスポインタの位置を取得する -
Robot.mouseMove
を利用してマウスポインタを動かします
例: x軸方向に1ピクセル、y軸方向に1ピクセル、マウスポインタを1分おきに動かす
import java.awt.AWTException;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Robot;
import java.util.concurrent.TimeUnit;
public class MoveMouse {
public static void main(String[] args) throws AWTException, InterruptedException {
Robot robot = new Robot();
while (true) {
Point point= MouseInfo.getPointerInfo().getLocation();
robot.mouseMove(point.x + 1, point.y + 1);
Thread.sleep(TimeUnit.MILLISECONDS.convert(1, TimeUnit.MINUTES));
}
}
}
このようなプログラムをバックグラウンドを実行しておくと、一定時間無操作でスリープするのを防ぐことができます。スリープになると、監視アプリがアラートをあげたり、チャットアプリのステータスが離席中になって、チームメンバーや上司に離席していることがばれたりすることがあります。
通常はPC側で設定可能ですが会社によっては、セキュリティ上の観点から、スリープ設定を解除できないようにしている場合があります。このプログラムはその対策ですね。
ところで、なぜ業務中にPCが無操作になるのかって? てへぺろ(・ω<)
環境情報
D:\>java -version
openjdk version "21.0.3" 2024-04-16 LTS
OpenJDK Runtime Environment Temurin-21.0.3+9 (build 21.0.3+9-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.3+9 (build 21.0.3+9-LTS, mixed mode, sharing)
D:\>javac -version
javac 21.0.3
D:\>ver
Microsoft Windows [Version 10.0.22631.3880]