java - 机器人Java类 XP vs. Vista Win7

标签 java windows automation

以下 Java 代码在 Windows XP 上运行时会锁定桌面,但在 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();
  }
 }
}

最佳答案

听起来 Vista 的 UAC 正在阻止 JVM 将事件馈送到操作系统事件队列。既然你没有提到它,我假设你没有看到异常。您可以尝试以管理员权限运行它吗?

关于java - 机器人Java类 XP vs. Vista Win7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731306/

相关文章:

c - 为什么这个 C 程序在 windows 上崩溃而在 linux 上运行正常?

javascript - PhantomJS/SlimerJS 无法点击 Canvas 元素

android - 我在哪里可以获得所有 Robotium 命令的列表?

java - 为什么PowerMock会尝试加载一些在非模拟类方法中使用的类?

java - 升级到2.7 ClassNotFoundException : org. mockito.exceptions.Reporter 运行测试后

windows - 无法使用 findstr 命令调用参数

windows - WMI 进程调用创建将无法正确运行批处理脚本

react-native - 如何在 GitHub Actions 中设置和访问环境变量?

java - SqlRowSet 返回 null,但为什么呢?

java - 在子类中声明与父类相同的属性