2012-11-02 3 views
8

Ich benutze die Robot-Klasse, um den Schlüssel in Java zu simulieren. Aber ich kann Fenster-Taste + L nicht drücken, obwohl ich in der Lage bin, sie einzeln zu drücken. Hier ist mein Code:Ich kann Windows + L nicht mit Roboter in Java drücken

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 Die Methoden sind die Standard [ ' java.awt.robot'] (http://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html) Methoden. – Baz

+0

@Baz ohh .. ich weiß nicht awt: P .. danke sowieso :) – PermGenError

+0

yeah sie sind in der Klasse selbst angegeben – Madeyedexter

Antwort

12

Versuchen Sie stattdessen:

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

Beeindruckend. Vielen Dank. Funktioniert gut, dient meinem Zweck. – Madeyedexter

+2

Ich möchte nur hinzufügen, dass dies nur unter Windows funktioniert. – Simeon

+0

Wie diese Zeile das eigentliche Problem beheben? Kannst du bitte über diese Linie berichten? –

0

Versuchen:

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

Das hat @Wilddev gesagt. Aber es funktioniert nicht. – Madeyedexter

+0

Welche Windows-Version verwenden Sie? –

+0

Ich verwende Windows 8 RTM – Madeyedexter

0

Try this:

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); 
Verwandte Themen