В чем различие поведения функции «ToAscii» на windows 7 и windows 10?
Я получаю код нажатой виртуальный клавиши, из процедуры lowlevelkeyboardproc ( через SetWindowsHookExA). При попытке перевести его в читаемый вид использую “ToAscii(info.vkCode, info.scanCode, keyboardState, ascii, 0)”
так же я пробовал:
“ToAscii(info.vkCode, MapVirtualKey!!(info.vkCode, 0.toUInt()), keyboardState, ascii, 0)” и это дало тот же результат:
В windows 10 все английские буквы и прочие символы определяются верно, но запустив на windows 7 выводит не читаемые символы.
Это должны быть проблемы в кодировке, но используется Windows-1251 в обоих случаях.
Поискал в стандартной библиотеке KN, тут нет возможности работы с кодировками, а из мира “Си” “ToAscii”, как видно по проблеме ведет себя странно.
Так же интересный момент, если я пишу в начале system(“cmd /c programm.exe”), то получаемые символы становятся неразборчивыми на обоих версиях windows.