2010-09-16 9 views
4

Le code Java suivant lorsqu'il est exécuté sur Windows XP verrouille le bureau, mais lorsqu'il est exécuté sur Vista ou Windows 7, il ne verrouille pas le bureau. J'apprécierais que quelqu'un puisse me montrer comment faire fonctionner Vista et Windows 7 avec Java uniquement.Robot Java classe XP vs 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

duplication possible de [Impossible d'appuyer sur Windows + L en utilisant le robot en Java] (http://stackoverflow.com/questions/13193293/cannot-press-windowl-using-robot-in-java) – Boann

Répondre

1

Le système UAC de Vista semble empêcher la machine virtuelle Java d'alimenter des événements dans la file d'attente d'événements du système d'exploitation. Puisque vous ne l'avez pas mentionné, je suppose que vous ne voyez pas d'exception. Pouvez-vous essayer cela avec les privilèges d'administrateur?

+0

Bonjour Jim, vous avez assumé correctement je ne vois pas une exception. Mais quand je mets le fichier javaw.exe à exécuter avec des privilèges d'administrateur, je reçois maintenant l'exception suivante: "Exception s'est produite en exécutant la ligne de commande.Peut pas exécuter le programme" C: \ Programmes \ Java \ jre6 \ bin \ javaw.exe "(dans répertoire "C: \ Utilisateurs \ sja26 \ Documents \ Espace de travail Eclipse \ Page"): erreur CreateProcess = 740, l'opération demandée nécessite une élévation – sja26

+0

"Exception" est-il une exception Java? Comment l'avez-vous fait fonctionner avec des privilèges d'administrateur? "? –

Questions connexes