網上找到一個放鎖屏的小程序,(按文章中直接將代碼貼到一個類里,打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(); } } } } } }
將這個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
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下)
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
