After hours of investigating and found nothing I've decided to come to this forum.
I have an arduino micro ATMEGA32u4 and I want to use it as an automatic keyboard to develop an automatic diagnostic tool. The issue is that when I write Keyboard.print("/"); I get "-" instead of "/". From what I have seen, it refers to interference in the language of the keyboard. But is there a way to make it universal? I mean that it works regardless of the language or type of keyboard used by the host machine.
Thank you very much in advance
The USB keyboard sends key codes that indicate which button of the keyboard was pressed or released. The operating system uses the keyboard language settings to turn that key position into a character. As far as I know there is no way for the Arduino to figure out what the current language setting is.
The "Rubber Ducky" is open-source (https://github.com/hak5darren/USB-Rubber-Ducky) so if it can detect and compensate for various language settings you can read their source code to find out how. I don't think they can.
Just write your payloads so they don't use Q, W, A, Z, or any punctuation. On most keyboards, the other alphabetic and number keys are always in the same positions.