无法按窗口+;L在Java中使用robot

无法按窗口+;L在Java中使用robot,java,windows-8,awtrobot,Java,Windows 8,Awtrobot,我使用Robot类在Java中模拟按键。但我无法按Window键+L,尽管我可以单独按它们。这是我的密码: private void pressKey() { Robot r=new Robot(); robot.keyPress(KeyEvent.VK_WINDOWS); robot.keyPress(KeyEvent.VK_L); robot.keyRelease(KeyEvent.VK_WINDOWS); robot.keyRelease(KeyEv

我使用Robot类在Java中模拟按键。但我无法按Window键+L,尽管我可以单独按它们。这是我的密码:

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);
}
尝试:

请尝试以下方法:

Runtime.getRuntime().exec("rundll32 user32.dll,LockWorkStation");
试试这个:

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

@柴坦尼亚10这些方法是标准方法。@Baz-ohh。。我不知道awt:P。。不管怎样,谢谢:)是的,它们是在类中指定的。这对我来说在XP上很有效,因为它会跳转到锁屏,但之后会变得很奇怪,好像两个键都被卡住了。因此,在输入密码解锁时,L不起作用,按U打开工具管理器(Win+U)。再次按下Windows键可以清除它,但可能您尝试的方法不是很好。@Boann,这是因为两个按钮一按下Windows就会注销。因此,当您在登录屏幕上时,它们仍然被按下。您使用的是什么windows版本?令人印象深刻。很多。很好,符合我的目的。这条线如何解决实际问题?你能描述一下这一行吗?@AnilreddyArragonda它告诉Windows调用API函数,而不是试图用按键来伪造它。是的。对的有道理。谢谢
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);