【发布时间】:2016-06-15 15:09:38
【问题描述】:
基本上我只需要创建一个应用程序(具有某种用户访问权限),它的第一个屏幕是一个全屏窗口,如果不输入有效的用户名和密码,就无法最小化或关闭它。像windows屏幕保护程序之类的东西。可以做到吗?我应该查看哪些库?这就是我所需要的,如果我的问题不完整或不清楚,请随时提问!
【问题讨论】:
标签: java locking fullscreen
基本上我只需要创建一个应用程序(具有某种用户访问权限),它的第一个屏幕是一个全屏窗口,如果不输入有效的用户名和密码,就无法最小化或关闭它。像windows屏幕保护程序之类的东西。可以做到吗?我应该查看哪些库?这就是我所需要的,如果我的问题不完整或不清楚,请随时提问!
【问题讨论】:
标签: java locking fullscreen
有一次,我用 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来杀了我的应用。他在我的个人文件中留下了一条信息,他在其中写下了他的所作所为,并以“我打败了你,哈哈我是邪恶的”结束了他的信息。所以,我想和他竞争。然后写了这段代码。他在学校尝试了五次以上以逃离该应用程序,但他不能(我也不能:D)。当然,他可以关闭机器或注销。但目标是访问我的个人文件。
【讨论】:
stop() 吗?还是您重新启动了机器:D?
在任何半体面的操作系统中,操作系统将负责为每个进程分配一个区域或窗口。
您需要检查执行此操作的每个操作系统方法,并使用 JNI 在本机代码(可能是 C 或 C++)中实现它。
【讨论】: