2010-09-16 58 views
4

在Windows XP上运行时,以下Java代码将锁定桌面,但在Vista或Windows 7上运行时,它不会锁定桌面。如果有人能告诉我如何在Vista和Windows 7上使用Java,那么我会很感激。机器人Java类XP与Vista Win7

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

可能重复的[不能按Window + L使用Java中的机器人](http://stackoverflow.com/questions/13193293/cannot-press-windowl-using-robot-in-java) – Boann 2014-04-28 07:18:16

回答

1

听起来像Vista的UAC阻止JVM将事件馈送到OS事件队列中。既然你没有提到它,我想你没有看到一个例外。你能尝试以管理员权限运行吗?

+0

嗨吉姆,你假设正确的我没有看到一个例外。但是,当我将javaw.exe文件设置为以管理员权限运行时,我现在得到以下异常:“执行命令行发生异常。无法运行程序”C:\ Program Files \ Java \ jre6 \ bin \ javaw.exe“目录“C:\ Users \ sja26 \ Documents \ Eclipse Workspace \ Page”):CreateProcess错误= 740,请求的操作需要提升 – sja26 2010-09-20 11:10:19

+0

“异常”是一个Java异常吗?您是如何设置[它]以管理员权限运行“? – 2010-09-20 19:42:14