在Windows XP上运行时,以下Java代码将锁定桌面,但是在Vista或Windows 7上运行时,它不会锁定桌面。如果有人能告诉我如何在仅使用Java的Vista和Windows 7中使用它,我将不胜感激。
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class Roboto {
//Lock windows desktop using "WinKey + L"
public static void main(String[] args) {
try {
Robot r = new Robot();
r.keyPress(KeyEvent.VK_WINDOWS);
r.keyPress(KeyEvent.VK_L);
r.keyRelease(KeyEvent.VK_L);
r.keyRelease(KeyEvent.VK_WINDOWS);
} catch (AWTException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
听起来像Vista的UAC阻止JVM将事件送入OS事件队列。既然你没有提到它,我认为你没有看到异常。您可以尝试使用管理员权限运行吗?