これが重複していないことを願っていますが、私はフォーラムを精査しましたが、まだ答えを見つけていません。
Robotクラスを使用してテキストを入力するJavaアプリケーションで問題が発生しています。テキストが提供され、アプリケーションがそれを入力します。ユーザーがQWERTYキーボードを使用している場合、すべてが正常に機能します。ユーザーがAZERTYキーボードを使用している場合、値が正しく表示されません。
たとえば、ソフトウェアタイプ「&é」'(§è!çà"に"1234567890"をフィードします。
複数のキーボードレイアウトをサポートする方法を知っている人がいることを願っています。前もって感謝します。
これがスニペットです
String TRANSLATION_SHIFT = "~!@#$%^&*()_+{}|:\"<>?";
String TRANSLATION_NON_SHIFT = "`1234567890-=[]\\;',./";
Robot robot = new Robot();
String text = "1234567890";
int key;
for (char c: text.toCharArray()){
switch(c){
....
case '0':
key = KeyEvent.VK_0;
break;
case '1':
key = KeyEvent.VK_1;
break;
...(etc etc)...
case '9':
key = KeyEvent.VK_9;
break;
...
}
robot.keyPress(key);
robot.keyRelease(key);
}
そこにはコードもあります