關於windows防止鎖屏小程序


  

網上找到一個放鎖屏的小程序,(按文章中直接將代碼貼到一個類里,打jar包,兩行腳本運行jar包即可,但也有一些小曲折)mark一下

java代碼的原文地址:https://www.cnblogs.com/itfeng813/p/11579360.html

package main;

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.Robot;
import java.awt.Toolkit;

public class Main {
    public static void main(String[] args) {
        Robot robot = null;
        try {
            robot = new Robot();
        } catch (AWTException e1) {
            e1.printStackTrace();
        }
        Point pos = MouseInfo.getPointerInfo().getLocation();

        int last_x = pos.x;
        int last_y = pos.y;

        int mov = 1;

        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

        System.out.println("Screen size: " + screenSize.getWidth() + "*" + screenSize.getHeight());
        while (true) {
            System.out.println(pos.x + " " + pos.y);
            PointerInfo pos_info = MouseInfo.getPointerInfo();
            if (pos_info == null) {
                System.out.println("Get location fail!");
                try {
                    Thread.sleep(30000L);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            } else {
                pos = pos_info.getLocation();

                if ((pos.x == last_x) && (pos.y == last_y)) {
                    System.out.println("moving!");

                    if (pos.y <= 0) {
                        mov = 1;
                    }
                    if (pos.y > 0) {
                        mov = -1;
                    }
                    robot.mouseMove(pos.x, pos.y + mov);

                    robot.mouseMove(pos.x, pos.y);
                }
                pos_info = MouseInfo.getPointerInfo();
                if (pos_info == null) {
                    System.out.println("Get location fail!");
                    try {
                        Thread.sleep(30000L);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                } else {
                    pos = pos_info.getLocation();

                    last_x = pos.x;
                    last_y = pos.y;
                    try {
                        Thread.sleep(30000L);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}
java代碼

將這個Main類打成jar包,此處jar包名為MouseMove.jar;與jar包同目錄位置寫個.bat類型文件,文件內容如下:

@echo off
java -jar MouseMove.jar

雙擊執行即可。

有幾點題外話(說明):

1.關於使用IDEA將java打包成jar和exe的方法(IDEA的Artifacts打成jar包;exe4j工具轉exe)

參考鏈接:https://blog.csdn.net/weixin_38310965/article/details/80392767

2.IDEA的Artifacts (即編譯后的Java類,Web資源等的整合,用以測試、部署等工作。再白話一點,就是說某個module要如何打包,例如war exploded、war、jar、ear等等這種打包形式。某個module有了 Artifacts 就可以部署到應用服務器中了。)

詳解見:https://blog.csdn.net/it_manman/article/details/79699455

https://blog.csdn.net/qq540827396/article/details/86556461?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

3.關於@echo off 的作用(@echo off表示執行了這條命令后關閉所有命令(包括本身這條命令)的回顯。)

詳解見:https://blog.csdn.net/fly_as_tadpole/article/details/85177379

兩個小插曲(注意:打成jar運行時遇到報錯): 

1. 生成的jar運行報錯,Error: Invalid or corrupt jarfile

(原因:我的/META_INF目錄自動生成在src/main/java/下,通過對比發現jar包里面根本沒有META_INF文件夾,這就是jar無法運行的根本原因;)

(解決方案:將/META_INF目錄放到 src/main/resources下)

詳細見:https://blog.csdn.net/weixin_34050427/article/details/85946344?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

2. 生成的jar在IDEA運行正常,但java -jar運行報錯,Exception in thread "main" java.lang.UnsupportedClassVersionError

(原因:是idea打包時的jdk與電腦java的版本不一致(聽起來有點難理解,繞;但問題出來才發現idea的版本是可以選擇導致的)

詳細見:https://blog.csdn.net/qq_16633405/article/details/75330857

              https://www.cnblogs.com/qnly/p/10477378.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM