A Transparent screen to lock the Desktop.

programming

In this code i am sharing the code to lock the PC screen by using a transparent JFrame so as to restrict others to use it.The frame disappears  only when the user enters the right username and password.This enables the user to let the background tasks going on and lock the screen.This has the only problem that it can be closed by the task manager.If you find a solution to it please let me know.

package com.oksbwn.systeminteraction;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;

import javax.microedition.io.Connection;
import javax.microedition.io.Connector;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import com.oksbwn.popUp.popMe;
import com.oksbwn.voiceEnable.Voice;

public class Hibernate {
    JFrame frame2 = new JFrame();
    //public static void main(String args[]) throws Exception
    public void doit() throws IOException {
        try {
            Connection connection = Connector.open("btgoep://" + "04A82A5A62FB" + ":9");
            connection.close();
            //int x=1/0;//The condition which will trigger the frame to come up
        } catch (Exception e) {
            //r.exec("shutdown -h");//s for shutdown r restart
            // Runtime rt = Runtime.getRuntime();
            // rt.exec("C:\Windows\System32\rundll32.exe user32.dll,LockWorkStation");

            Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize(); // size of the screen
            frame2.setBounds(0, 0, scrSize.width, scrSize.height);
            frame2.getContentPane().setLayout(null);
            frame2.setAlwaysOnTop(true);
            frame2.setUndecorated(true);
            frame2.setBackground(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 1));
            frame2.getContentPane().setBackground(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 50));
            ((JComponent) frame2.getContentPane()).setBorder(
                BorderFactory.createMatteBorder(2, 2, 2, 2, Color.black));
            frame2.setType(javax.swing.JFrame.Type.UTILITY);
            frame2.setAlwaysOnTop(true);

            final JTextField textField = new JTextField();
            textField.addKeyListener(new KeyAdapter() {
                @Override
                public void keyPressed(KeyEvent arg0) {
                    frame2.repaint();
                }
            });
            textField.setBounds(scrSize.width - 150, scrSize.height - 100, 140, 30);
            textField.setBackground(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 1));
            frame2.getContentPane().add(textField);
            textField.setColumns(10);

            final JPasswordField passwordField = new JPasswordField();
            passwordField.addKeyListener(new KeyAdapter() {
                @Override
                public void keyPressed(KeyEvent arg0) {
                    frame2.repaint();
                }
            });
            frame2.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
            passwordField.setBounds(scrSize.width - 150, scrSize.height - 65, 140, 30);
            passwordField.setBackground(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 1));
            frame2.getContentPane().add(passwordField);

            JButton btnLogIn = new JButton("login");
            btnLogIn.setBounds(scrSize.width - 127, scrSize.height - 30, 77, 24);
            frame2.getContentPane().add(btnLogIn);
            btnLogIn.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent arg0) {
                    @SuppressWarnings("deprecation")
                    String pass = passwordField.getText();
                    logClicked(pass, textField.getText());
                    passwordField.setText(null);
                    textField.setText(null);
                    //frame2.dispose();
                }
            });

            final JLabel Snap = new JLabel();
            Snap.setForeground(Color.RED);
            Snap.setBounds(scrSize.width / 2 - 100, scrSize.height / 2 - 100, 200, 200);
            frame2.getContentPane().add(Snap);

            frame2.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent arg0) {
                    final Runnable runnable = (Runnable) Toolkit.getDefaultToolkit().getDesktopProperty("win.sound.exclamation");
                    //default
                    if (runnable != null)
                        runnable.run();
                    Snap.setText("OOOOps You are Not Bikash");
                }
            });
            frame2.setVisible(true);
        }
    }
    protected void logClicked(String pass, String user) {
        String aPass = "******"; //Password
        String aUser = "oksbwn"; //Username
        if (aPass.compareTo(pass) == aUser.compareTo(user) == true) {
            //sucess message
        } else {
            //failure message
        }
    }
}
Bikash Panda
Catch Me On

Related posts