1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Javaでマウスポインタを動かしたい

Posted at

以下のステップでマウスポインタを動かすことができます。

  1. MouseInfo.getPointerInfoで現在のマウスポインタの位置を取得する
  2. 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]
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?