java - 使用 Java 锁定屏幕

标签 java locking fullscreen

基本上我只需要创建一个应用程序(具有某种用户访问权限),第一个屏幕是一个全屏窗口,如果不输入有效的用户名和密码就不能最小化或关闭。类似于 Windows 屏幕保护程序。可以吗?我应该研究哪些图书馆?这就是我所需要的,如果我的问题不完整或不清楚,请随时提问!

最佳答案

有一次,我用 Java 写了一些东西,你无法逃脱。真的不可能。它适用于 Windows。给你:

import java.awt.Robot;
import javax.swing.JFrame;


public class WindowsSecurity implements Runnable 
{
  private JFrame frame;
  private boolean running;

  public WindowsSecurity(JFrame yourFrame)
  {
    this.frame = yourFrame;
    new Thread(this).start();
  }

  public void stop()
  {
     this.running = false;
  }

  public void run() {
    try {
      this.terminal.getParentFrame().setAlwaysOnTop(true);
      this.terminal.getParentFrame().setDefaultCloseOperation(0);
      kill("explorer.exe"); // Kill explorer
      Robot robot = new Robot();
      int i = 0;
      while (running) {
         sleep(30L);
         focus();
         releaseKeys(robot);
         sleep(15L);
         focus();
         if (i++ % 10 == 0) {
             kill("taskmgr.exe");
         }
         focus();
         releaseKeys(robot);
      }
      Runtime.getRuntime().exec("explorer.exe"); // Restart explorer
    } catch (Exception e) {

    }
  }

  private void releaseKeys(Robot robot) {
    robot.keyRelease(17);
    robot.keyRelease(18);
    robot.keyRelease(127);
    robot.keyRelease(524);
    robot.keyRelease(9);
  }

  private void sleep(long millis) {
    try {
      Thread.sleep(millis);
    } catch (Exception e) {

    }
  }

  private void kill(String string) {
    try {
      Runtime.getRuntime().exec("taskkill /F /IM " + string).waitFor();
    } catch (Exception e) {
    }
  }

  private void focus() {
    this.frame.grabFocus();
    this.frame.requestFocus();
  }
}

这段代码的背景:我写了某种假终端,我可以在其中显示我想要的一切。例如,愚蠢的 Windows 消息,如:“未找到键盘,按任意键继续”。我用它作为学校的笑话。启动这个应用程序并离开房间,它会在一分钟后自动注销 Windows 帐户。但是我没想到会有老师用Ctrl-Alt-Del来杀死我的应用程序。他在我的私有(private)文件里留言,写下了他的所作所为,并以“我打败了你,哈哈我是邪恶的”结束了他的留言。所以,我想和他比赛。然后写了这段代码。他在学校尝试了五次以上来逃离该应用程序,但他做不到(我也做不到 :D)。当然,他可以关闭机器或注销。但目标是访问我的个人文档。

关于java - 使用 Java 锁定屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6744535/

相关文章:

python - 在 PyGTK 中使用 F11 切换全屏的简单方法

java - 从父类(super class)调用子类中的重写方法

java - 使用 apache poi 方法检查 excel 中的空行

java - java中的偏向锁定

javascript - 更改页面或刷新时失去全屏

Android 应用程序不会占据整个屏幕

java - 相同的代码,通过 Lotus Domino 发送电子邮件的不同行为

java - Android opencv加载16位深度的灰度png

mysql锁定选择查询中的行以进行更新

mysql - COUNT(*) 是否等待 InnoDB 中的行锁?