Робот Java класс XP против Vista Win7 - PullRequest
4 голосов
/ 17 сентября 2010

Следующий код Java при запуске в Windows XP блокирует рабочий стол, однако при запуске в Vista или Windows 7 он не блокирует рабочий стол.Я был бы признателен, если бы кто-нибудь показал мне, как заставить это работать в Vista и Windows 7, используя только Java.

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

1 Ответ

1 голос
/ 17 сентября 2010

Похоже, что UAC Vista не позволяет JVM передавать события в очередь событий ОС.Поскольку вы не упомянули об этом, я полагаю, вы не видите исключения.Можете ли вы попробовать запустить это с правами администратора?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...