الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التاكد من ان مستعمل الكمبيوتر موجود

بدأه ssad في 17 ديسمبر 2009 · 8 رد · 666 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

اريد من المستخدم ان يقوم بادخال قيمة عن طريق هذا الكود

Msg = JOptionPane.showInputDialog("Please enter your free time: " );

سؤالي هو كيف يمكن ان اتاكد ان المستخدم موجود على الجهاز قبل ان يقوم بادخال القيمة، واذا لم يكن موجودا ان يغلق البرنامج لوحده؟

ارجو المساعدة لاني حاولت كثيرا ولم استطع وشكرا.

#2

بما أن البرنامج يشتغل يعني أن المستعمل هو من شغله :blink: ، اي انه موجود.

ممكن تجعل برنامجك ينتظر لوقت محدد، فإن لم يحصل على أي إجابة يغلق نفسه

تم تعديل هذه المشاركة بواسطة herch في 17 ديسمبر 2009 في 14:16

#3
/**
 * In java there is nothing such as keylogger where you can detect all the mouse and keyboard events on the system
 * But what you can do is to detect any mouse or keyboard events on the JVM (Java virtual machine), so if no events were
 * detected for some period, you can close the program.
 * If you want help with coding that, let me know
 * Sorry for the english post :)  
 * /
#4

شكرا ايها الاخوة على مشاركتكم

يبدو اني اخطات في توضيح ما اريده لكن

اقتباس
ممكن تجعل برنامجك ينتظر لوقت محدد، فإن لم يحصل على أي إجابة يغلق نفسه
اقتباس

so if no events were detected for some period, you can close the program

هذا ما احتاجه بالضبط ارجو ان تساعدوني بالكود لاني محتاجه وشكرا

#5

الموضوع يحتاج إلى thread يقوم بمراقبة لوحة المفاتيح والفأرة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

الاخ علاء الصالحي وباقي الاخوة

وجدت هذا الكود يقوم بمراقبة لوحة المفاتيح

import java.awt.*; 
import java.awt.event.*;

public class KeyListenerTester extends Frame implements KeyListener{  
  TextField t1;
  Label l1;
    public KeyListenerTester(String s )   {  
    super(s); 
  Panel p =new Panel();
  l1 = new Label ("Key Listener!" ) ;
  p.add(l1);  
  add(p);
    addKeyListener ( this ) ; 
  setSize ( 200,100 );
  setVisible(true);
  addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e){
  System.exit(0);
     }
  });
  }  
    public void keyTyped ( KeyEvent e ){  
    l1.setText("Key Typed");
     }  
    public void keyPressed ( KeyEvent e){  
    l1.setText ( "Key Pressed" ) ; 
    }  
    public void keyReleased ( KeyEvent e ){  
    l1.setText( "Key Released" ) ; 
    }  
    public static void main (String[]args ){  
    new KeyListenerTester ( "Key Listener Tester" ) ; 
     }  
  }

لكن كيف احدد وقتا معينا ليطفئ لوحده؟

تم تعديل هذه المشاركة بواسطة ssad في 18 ديسمبر 2009 في 03:49

#7

الفكرة في الموضوع أنك ستقوم إيقاف وتشغيل مؤقت timer

وهو الذي سيكون مسؤولاً عن عملية المتابعة لهذه الأحداث

على كل قمت بكتابة هذه الشيفرة لك

import java.awt.*;
import java.awt.event.*;

import javax.swing.Timer;

public class SessionInJFrame extends Frame implements KeyListener, ActionListener {
	Timer timer = new Timer(10000,this);
	TextField t1;
	Label l1;

	public SessionInJFrame(String s) {
		super(s);
		Panel p = new Panel();
		l1 = new Label("Key Listener!");
		p.add(l1);
		add(p);
		addKeyListener(this);
		setSize(200, 100);
		setVisible(true);
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		timer.start();
	}

	public void keyTyped(KeyEvent e) {
		l1.setText("Key Typed");
		timer.restart();
	}

	public void keyPressed(KeyEvent e) {
		l1.setText("Key Pressed");
		timer.restart();
	}

	public void keyReleased(KeyEvent e) {
		l1.setText("Key Released");
		timer.restart();
	}

	public static void main(String[] args) {
		new SessionInJFrame("Key Listener Tester");
	}

	public void actionPerformed(ActionEvent e) {
		System.exit(0);		
	}
}

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#8
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.Date;


public class JavaTimeOutListener implements MouseListener,
                                 MouseMotionListener,
                                 KeyListener, ActionListener
{
  private final Object lock;
  private long timeout, lastTime;

  public JavaTimeOutListener(long timeout) {
      this.timeout  = timeout;
      lock = new int[1];

    lastTime = System.currentTimeMillis();
  }

  // called when any event occur, it sets the time of last event
  private void recordLastEvent(InputEvent event) {
    synchronized(lock) {
      lastTime = System.currentTimeMillis();
    }
  }

  // invoked by the timer in TimeOutTest class after each delay (currently set to 2 seconds)
  public void actionPerformed(ActionEvent e) {
    synchronized(lock) {
        // calculate delay between last and current event
      if(System.currentTimeMillis() - lastTime >= timeout) {
          // do whatever you want or exit
        System.out.println("Time out at " + new Date().toString() + ", Exiting ... ");
        System.exit(0);
      } else
        System.out.println("Still active.");
    }
  }

  // mouse and keyboard events, all call recordLastEvent
  public void mouseDragged(MouseEvent e) { recordLastEvent(e); }
  public void mouseMoved(MouseEvent e)   { recordLastEvent(e); }
  public void mouseClicked(MouseEvent e) { recordLastEvent(e); }
  public void mouseEntered(MouseEvent e) { recordLastEvent(e); }
  public void mouseExited(MouseEvent e)  { recordLastEvent(e); }
  public void mousePressed(MouseEvent e) { recordLastEvent(e); }
  public void mouseReleased(MouseEvent e){ recordLastEvent(e); }
  public void keyPressed(KeyEvent e)     { recordLastEvent(e); }
  public void keyReleased(KeyEvent e)    { recordLastEvent(e); }
  public void keyTyped(KeyEvent e)       { recordLastEvent(e); }
}

public class TimeOutTest {

    // timeout duration in milliseconds (10 sec)
  public static final int TIMEOUT = 10000;

  public static void main(String[] args) {
    JFrame frame = new JFrame("Timeout test frame");
    JavaTimeOutListener timeoutListener;
    Timer timer;


    timeoutListener = new JavaTimeOutListener(TIMEOUT);
    frame.addMouseListener(timeoutListener);
    frame.addMouseMotionListener(timeoutListener);
    frame.addKeyListener(timeoutListener);

    // exit on windowClosing
    frame.addWindowListener(new WindowAdapter() {
      @Override
      public void windowClosing(WindowEvent e) {
        Window window = e.getWindow();
        window.setVisible(false);
        window.dispose();
        System.exit(0);
      }
    });


     //timer that fires an action event on timeoutListener every 2 seconds
    // set the delay according to your needs, try to increase it,
    //to decrease the fired events
    timer = new Timer(2000, timeoutListener);
    timer.setRepeats(true);
    timer.start();

    frame.setSize(200, 300);
    frame.setVisible(true);


  }
}
#9

شكرا جزيلا لكم على المساعدة وان شاء الله ساجرب الاكواد

مواضيع مشابهة