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.
Code:
Code:
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 } } }
No comments:
Post a Comment