2012-11-02 16 views
8

Sto utilizzando la classe Robot per simulare la pressione dei tasti in Java. Ma non riesco a premere il tasto Finestra + L anche se sono in grado di premere singolarmente. Ecco il mio codice:Impossibile premere Window + L utilizzando il robot in Java

private void pressKey() 
{ 
    Robot r=new Robot(); 
    robot.keyPress(KeyEvent.VK_WINDOWS); 
    robot.keyPress(KeyEvent.VK_L); 
    robot.keyRelease(KeyEvent.VK_WINDOWS); 
    robot.keyRelease(KeyEvent.VK_L); 
} 
+0

@ chaitanya10 I metodi sono i [standard ' java.awt.robot'] (http://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html) metodi. – Baz

+0

@Baz ohh .. non so awt: P .. grazie comunque :) – PermGenError

+0

sì sono specificati nella classe stessa – Madeyedexter

risposta

12

Prova a modificare:

Runtime.getRuntime().exec("rundll32 user32.dll,LockWorkStation"); 
+2

Impressionante. Grazie mille. Funziona bene, serve al mio scopo. – Madeyedexter

+2

Voglio solo aggiungere che questo funzionerà solo su Windows. – Simeon

+0

In che modo questa riga risolve il problema attuale? Puoi per favore descrivere questa linea? –

0

Prova:

private void pressKey(){ 
    Robot r=new Robot(); 
    robot.keyPress(KeyEvent.VK_WINDOWS); 
    robot.keyPress(KeyEvent.VK_L); 
    robot.keyRelease(KeyEvent.VK_L); 
    robot.keyRelease(KeyEvent.VK_WINDOWS); 
} 
+0

Ecco cosa ha detto @wilddev. Ma non funziona. – Madeyedexter

+0

Quale versione di Windows stai usando? –

+0

Sto usando Windows 8 RTM – Madeyedexter

0

Prova questa:

robot.keyPress(KeyEvent.VK_WINDOWS); 
robot.delay(100); 
robot.keyPress(KeyEvent.VK_L); 
robot.delay(200); 
robot.keyRelease(KeyEvent.VK_L); 
robot.delay(100); 
robot.keyRelease(KeyEvent.VK_WINDOWS); 
Problemi correlati