I can get a long way with getRawKeyPressed. So far I go for this:
if GetRawKeyState( KEY_SHIFT ) = TRUE
if GetRawKeyPressed (KEY_A) then inputStr = inputStr + "A"
if GetRawKeyPressed (KEY_B) then inputStr = inputStr + "B"
if GetRawKeyPressed (KEY_C) then inputStr = inputStr + "C"
if GetRawKeyPressed (KEY_D) then inputStr = inputStr + "D"
if GetRawKeyPressed (KEY_E) then inputStr = inputStr + "E"
if GetRawKeyPressed (KEY_F) then inputStr = inputStr + "F"
if GetRawKeyPressed (KEY_G) then inputStr = inputStr + "G"
if GetRawKeyPressed (KEY_H) then inputStr = inputStr + "H"
if GetRawKeyPressed (KEY_I) then inputStr = inputStr + "I"
if GetRawKeyPressed (KEY_J) then inputStr = inputStr + "J"
if GetRawKeyPressed (KEY_K) then inputStr = inputStr + "K"
if GetRawKeyPressed (KEY_L) then inputStr = inputStr + "L"
if GetRawKeyPressed (KEY_M) then inputStr = inputStr + "M"
if GetRawKeyPressed (KEY_N) then inputStr = inputStr + "N"
if GetRawKeyPressed (KEY_O) then inputStr = inputStr + "O"
if GetRawKeyPressed (KEY_P) then inputStr = inputStr + "P"
if GetRawKeyPressed (KEY_Q) then inputStr = inputStr + "Q"
if GetRawKeyPressed (KEY_R) then inputStr = inputStr + "R"
if GetRawKeyPressed (KEY_S) then inputStr = inputStr + "S"
if GetRawKeyPressed (KEY_T) then inputStr = inputStr + "T"
if GetRawKeyPressed (KEY_U) then inputStr = inputStr + "U"
if GetRawKeyPressed (KEY_V) then inputStr = inputStr + "V"
if GetRawKeyPressed (KEY_W) then inputStr = inputStr + "W"
if GetRawKeyPressed (KEY_X) then inputStr = inputStr + "X"
if GetRawKeyPressed (KEY_Y) then inputStr = inputStr + "Y"
if GetRawKeyPressed (KEY_Z) then inputStr = inputStr + "Z"
else
if GetRawKeyPressed (KEY_A) then inputStr = inputStr + "a"
if GetRawKeyPressed (KEY_B) then inputStr = inputStr + "b"
if GetRawKeyPressed (KEY_C) then inputStr = inputStr + "c"
if GetRawKeyPressed (KEY_D) then inputStr = inputStr + "d"
if GetRawKeyPressed (KEY_E) then inputStr = inputStr + "e"
if GetRawKeyPressed (KEY_F) then inputStr = inputStr + "f"
if GetRawKeyPressed (KEY_G) then inputStr = inputStr + "g"
if GetRawKeyPressed (KEY_H) then inputStr = inputStr + "h"
if GetRawKeyPressed (KEY_I) then inputStr = inputStr + "i"
if GetRawKeyPressed (KEY_J) then inputStr = inputStr + "j"
if GetRawKeyPressed (KEY_K) then inputStr = inputStr + "k"
if GetRawKeyPressed (KEY_L) then inputStr = inputStr + "l"
if GetRawKeyPressed (KEY_M) then inputStr = inputStr + "m"
if GetRawKeyPressed (KEY_N) then inputStr = inputStr + "n"
if GetRawKeyPressed (KEY_O) then inputStr = inputStr + "o"
if GetRawKeyPressed (KEY_P) then inputStr = inputStr + "p"
if GetRawKeyPressed (KEY_Q) then inputStr = inputStr + "q"
if GetRawKeyPressed (KEY_R) then inputStr = inputStr + "r"
if GetRawKeyPressed (KEY_S) then inputStr = inputStr + "s"
if GetRawKeyPressed (KEY_T) then inputStr = inputStr + "t"
if GetRawKeyPressed (KEY_U) then inputStr = inputStr + "u"
if GetRawKeyPressed (KEY_V) then inputStr = inputStr + "v"
if GetRawKeyPressed (KEY_W) then inputStr = inputStr + "w"
if GetRawKeyPressed (KEY_X) then inputStr = inputStr + "x"
if GetRawKeyPressed (KEY_Y) then inputStr = inputStr + "y"
if GetRawKeyPressed (KEY_Z) then inputStr = inputStr + "z"
endif
if GetRawKeyPressed (KEY_SPACE) then inputStr = inputStr + " "
if GetRawKeyPressed (KEY_0) then inputStr = inputStr + "0"
if GetRawKeyPressed (KEY_1) then inputStr = inputStr + "1"
if GetRawKeyPressed (KEY_2) then inputStr = inputStr + "2"
if GetRawKeyPressed (KEY_3) then inputStr = inputStr + "3"
if GetRawKeyPressed (KEY_4) then inputStr = inputStr + "4"
if GetRawKeyPressed (KEY_5) then inputStr = inputStr + "5"
if GetRawKeyPressed (KEY_6) then inputStr = inputStr + "6"
if GetRawKeyPressed (KEY_7) then inputStr = inputStr + "7"
if GetRawKeyPressed (KEY_8) then inputStr = inputStr + "8"
if GetRawKeyPressed (KEY_9) then inputStr = inputStr + "9"
if GetRawKeyPressed (KEY_NUMPAD_0) then inputStr = inputStr + "0"
if GetRawKeyPressed (KEY_NUMPAD_1) then inputStr = inputStr + "1"
if GetRawKeyPressed (KEY_NUMPAD_2) then inputStr = inputStr + "2"
if GetRawKeyPressed (KEY_NUMPAD_3) then inputStr = inputStr + "3"
if GetRawKeyPressed (KEY_NUMPAD_4) then inputStr = inputStr + "4"
if GetRawKeyPressed (KEY_NUMPAD_5) then inputStr = inputStr + "5"
if GetRawKeyPressed (KEY_NUMPAD_6) then inputStr = inputStr + "6"
if GetRawKeyPressed (KEY_NUMPAD_7) then inputStr = inputStr + "7"
if GetRawKeyPressed (KEY_NUMPAD_8) then inputStr = inputStr + "8"
if GetRawKeyPressed (KEY_NUMPAD_9) then inputStr = inputStr + "9"
if GetRawKeyPressed (KEY_ASTERISK) then inputStr = inputStr + "*"
if GetRawKeyPressed (KEY_PLUS) then inputStr = inputStr + "+"
if GetRawKeyPressed (KEY_SUBTRACT) then inputStr = inputStr + "-"
if GetRawKeyPressed (KEY_DECIMAL) then inputStr = inputStr + ","
if GetRawKeyPressed (KEY_DIVIDE) then inputStr = inputStr + "/"
if GetRawKeyPressed (KEY_SEMICOLON) then inputStr = inputStr + ";"
if GetRawKeyPressed (KEY_EQUAL) then inputStr = inputStr + "="
if GetRawKeyPressed (KEY_COLON) then inputStr = inputStr + ","
if GetRawKeyPressed (KEY_HYPHEN) then inputStr = inputStr + "-"
if GetRawKeyPressed (KEY_DOT) then inputStr = inputStr + "."
if GetRawKeyPressed (KEY_SLASH) then inputStr = inputStr + "/"
if GetRawKeyPressed (KEY_LEFTSQUAREBRACKET) then inputStr = inputStr + "["
if GetRawKeyPressed (KEY_BACKSLASH) then inputStr = inputStr + "\"
if GetRawKeyPressed (KEY_RIGHTSQUAREBRACKET) then inputStr = inputStr + "]"
if GetRawKeyPressed (KEY_HASH) then inputStr = inputStr + "#"
But when it comes to special characters, a lot of them requires Shift/Alt combinations which differs depending on your keyboard language.
Is there any solution here?