Hello So I made a java program which display the keyEvent.getKeyCode() each time I press a key.
The purpose was to be able to make some kind of bot able to drive git/skyrim/fraps using the java robot class and some keyEvent.
However it seems that it cannot map AZERTY keyboard, as you can see some keyEvent code are the same.
is there any other way of driving a keyboard?
Here is the program if you are wondering :
main class :
package keykeykey;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class MainClass {
public static void main(String args[]) throws Exception {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField nameTextField = new JTextField();
frame.add(nameTextField, BorderLayout.NORTH);
JTextField codeTextField = new JTextField();
frame.add(codeTextField, BorderLayout.SOUTH);
MyKeyListener myKeyListener = new MyKeyListener(codeTextField, nameTextField);
nameTextField.addKeyListener(myKeyListener);
frame.setSize(250, 100);
frame.setVisible(true);
}
}
keyListener redefinition
package keykeykey;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JTextField;
public class MyKeyListener extends KeyAdapter implements KeyListener {
public JTextField codeTextField;
public JTextField writeTextField;
public MyKeyListener(JTextField codeTextField, JTextField writeTextField) {
this.codeTextField = codeTextField;
this.writeTextField = writeTextField;
}
@Override
public void keyPressed(KeyEvent keyEvent) {
printIt("Pressed", keyEvent);
codeTextField.setText("code = " + keyEvent.getKeyCode());
}
@Override
public void keyReleased(KeyEvent keyEvent) {
codeTextField.setText("");
writeTextField.setText("");
}
@Override
public void keyTyped(KeyEvent keyEvent) {
//do nothing
}
private void printIt(String title, KeyEvent keyEvent) {
int keyCode = keyEvent.getKeyCode();
String keyText = KeyEvent.getKeyText(keyCode);
System.out.println(title + " : " + keyText + " / " + keyEvent.getKeyChar() + " code = " + keyEvent.getKeyCode());
}
}
Thanks.
Ps : yes I know about autoHotKey, however I need a strongly typed language and I love java.
EDIT
I must have not expressed myself correctly, I know that shift+VK1 makes "1" and the same goes for other keys.
My problem is that, as you can see in the first pictures, some key generate unrecognized key event (the one with red bars).
for example those 2 keys :