Задать вопрос
@solomka_ro

В чем различие поведения функции «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.
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@pfemidi
Тут могло бы быть краткое описание меня
В "cmd /c programm.exe" кодировка получается cp866 а не windows-1251. Во всяком случае в Windows 7.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы