Java Robot Linux模拟所有关键事件

Java Robot Linux模拟所有关键事件,java,linux,unicode,keyboard-events,awtrobot,Java,Linux,Unicode,Keyboard Events,Awtrobot,我正在尝试从键盘键入所有可能的键,而不考虑使用Java Robot的语言或布局 我们已经编写了一个超类,它具有打印字符KeyEvent.VK_a到KeyEvent.VK_Z,数字KeyEvent.VK_0到KeyEvent.VK_9以及SHIFT键组合的常用方法 现在来看看具体的部分,如果我们有意大利或土耳其的键盘,有Unicode,或者其他特殊字符。如何刺激相同的按键或按键释放?(因为这些字符没有有效的键码) 假设我们有ò,a,或*,§,等等 我正在JDK1.6上尝试这个。下面是代码片段 pr

我正在尝试从键盘键入所有可能的键,而不考虑使用Java Robot的语言或布局

我们已经编写了一个超类,它具有打印字符
KeyEvent.VK_a
KeyEvent.VK_Z
,数字
KeyEvent.VK_0
KeyEvent.VK_9
以及SHIFT键组合的常用方法

现在来看看具体的部分,如果我们有意大利或土耳其的键盘,有Unicode,或者其他特殊字符。如何刺激相同的按键或按键释放?(因为这些字符没有有效的键码)

假设我们有ò,a,或*,§,等等

我正在JDK1.6上尝试这个。下面是代码片段

protected void keyPressRelease(int keyCode){

    try{
        this.robot.keyPress(keyCode);
        this.robot.keyRelease(keyCode);
    }catch(java.lang.IllegalArgumentException e){
        logger.error("keyPressRelease() No key present "+KeyEvent.getKeyText(keyCode)+ " for Key Code :"+keyCode);
        logger.error("Error in typing ",e);
        this.errorBuilder.append("IllegalArgumentException keyPressRelease(), No key present "+KeyEvent.getKeyText(keyCode)+ " for Key Code :"+keyCode+"<br\\>");
    }catch(Exception e){
        logger.error("keyPressRelease() No key present "+KeyEvent.getKeyText(keyCode)+ " for Key Code :"+keyCode);
        logger.error("Error in typing ",e);
        this.errorBuilder.append("Exception keyPressRelease(), No key present "+KeyEvent.getKeyText(keyCode)+ " for Key Code :"+keyCode+"<br\\>");
    }
}//End of keyPressRelease()


protected void shiftKeyPress(int keyCode){

    this.robot.keyPress(KeyEvent.VK_SHIFT);

    try{

        this.robot.keyPress(keyCode);                    
        this.robot.keyRelease(keyCode);

    }catch(java.lang.IllegalArgumentException e){
        logger.error("shiftKeyPress() No key present "+KeyEvent.getKeyText(keyCode)+ " for Key Code :"+keyCode);
        this.errorBuilder.append("Exception shiftKeyPress(), No key present "+KeyEvent.getKeyText(keyCode)+ " for Key Code :"+keyCode+"<br\\>");
    }
    this.robot.keyRelease(KeyEvent.VK_SHIFT);

}//End of shiftKeyPress()



protected void typeLableName(int keyCode){
    String  labelName = KeyEvent.getKeyText(keyCode);
    type(labelName+" ");

    labelName = null;
}//End of typeLableName

//Windows 7 , normal keyboard, from Control panel changed the layout to Italy
private void checkSplCharacters(){

    this.keyPressRelease(KeyEvent.VK_ENTER);

    /*Start of  --> § Cedilla Small*/
    this.typeLableName(KeyEvent.VK_BACK_SLASH);
    this.keyPressRelease(KeyEvent.VK_BACK_SLASH);
    this.keyPressRelease(KeyEvent.VK_ENTER);

    this.typeLableName(KeyEvent.VK_BACK_SLASH);
    this.shiftKeyPress(KeyEvent.VK_BACK_SLASH);
    this.keyPressRelease(KeyEvent.VK_ENTER);
    /*End  of  --> § Cedilla Small*/        

    /*Start of  --> ì Grave Small*/
    this.typeLableName(KeyEvent.VK_PLUS);
    this.keyPressRelease(KeyEvent.VK_PLUS);     
    this.keyPressRelease(KeyEvent.VK_ENTER);

    this.typeLableName(KeyEvent.VK_PLUS);
    this.shiftKeyPress(KeyEvent.VK_PLUS);
    this.keyPressRelease(KeyEvent.VK_ENTER);
    /*End  of  --> ì Grave Small*/


}//End of checkSplCharacters

还有什么?太宽了。给出代码。基本上想用java Robot键入ò、a、ù或*、§。所以字符串a=“ò,á,ù或*,§”//Unicode字符尝试{Robot Robot=new Robot();for(int i=0;iDid您是否找到一种方法来解析所有字符以了解如何使用Robot进行键入?如果您只想键入,那么我正在循环(int i=KeyEvent.VK_a;i
     robot.keyPress(?);//What would be the equivalent key code for above Unicodes
    }

    }catch(Exception e){
    }