Windows. Руководство по получению точки на цифровой клавиатуре в русской раскладке.

  • Автор темы Автор темы H-ron
  • Дата начала Дата начала

H-ron

Well-Known Member
13 Апр 2011
7.733
5.784
113
59
Москва
По непонятным причинам, Windows 10 (а возможно и 7, и прочие) напрочь игнорирует региональные установки и в русской раскладке, при нажатии точки на цифровой клавиатуре, упорно будет печать запятую.

Наконец нашел время для решения проблемки. Решение оказалось не слишком тривиально. Но редактировать можно не только это)

Примечание: Для стандартной русской раскладки пункты 1...3 пропускаем, скачиваем архив, приложенный к посту и, разархивировав его, переходим к пункту 4.

Итак:

1.
Скачиваем со странички по ссылочке Microsoft Keyboard Layout Creator (MSKLC) Version 1.4, разорхиверуем в любую папку и устанавливаем пакет;

2. Запускаем установленный пакет;

3. Загружаем раскладку которую надо отредактировать File\Load Existing Keyboard:

Screenshot (185).png


В позиции Decimal Separator (numeric keypad) меняем запятую на точку:

Screenshot (190).png


Из меню Project\Properties по желанию меняем имя, описание и пр.

Screenshot (188).png


И после этого выполняем Project\Build DLL and Setup Package и игнорируем предупреждение, после чего в заданной рабочей папке появляется папка с заданным именем раскладки, содержащая установочные файлы:

Screenshot (189).png


Архив с файлами приложен к посту - достаточно разархивировать.

4. Запускаем setup.exe и, через некоторое время, даем разрешение на установку и устанавливаем раскладку.

5. Далее открываем в Windows Time & Language (Свойства Времени и Языка - не знаю как на русском будет) переходим на вкладку Language (настройки языка):

Screenshot (193).png

Где идем в опции русского языка Language options: Russian

И удаляем стандартную раскладку Russian ЙЦУКЕН:

Screenshot (195).png


Bingo! Теперь с цифровой клавиатуры всегда будет выводиться точка!
Внимание: при смене раскладок компьютер должен быть в интернете.


При желании всегда можно вернуть стандартную раскладку, просто добивив ее в своствах языка.
 

Вложения

Последнее редактирование:
Меня вот интересовало, как с помощью MSKLC цифровую клавиатуру сделать "телефонной"… В каком-то линуксе (скорее всего убунте) так было возможно… Ковырнув этот .klc-скрипт и махнув скан-коды местами вручную, открываю редактированное KeyLayout Creator`ом — наругался мне, что не правильный, так и не дав даже попробовать попечатать "перевёрнутыми" цифрами… пришлось ковырять теперь сам kbdutool.exe, чтоб добыть "cmdline" для компиляторов… Раз "рабочая папка" в моём случае находится прямо в подпапке самого MSKLC (путь к которому и так должен быть без пробелов, иначе "Build" не работало), то и при открытии командной строки в этой папке, приходится ..\bin\i386\kbdutool.exe -u -s руффкая-фыфербlаt.klc
тогда все преобразованное становится "видно на лицо" (файлы .H, .C, .RC и даже .DEF)
Код:
..\bin\i386\cl.exe -nologo -I..\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs RUFFERBLAT.C
..\bin\i386\rc.exe -r -i..\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 RUFFERBLAT.RC
..\bin\i386\link.exe -nologo -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:..\lib\i386 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text /release -def:RUFFERBLAT.def RUFFERBLAT.res RUFFERBLAT.obj
Для 64-разрядных может отличаться… возможно только путями :)
Попытавшись "переназначить" NUMPAD`ы прямо в файле.H, ну ок — KeyboardStateView теперь на сканкоды NumPad`ов отвечает другими VirtualKey`ями, вот только Shift+Num7 … Shift+Num3 работать как положено перестали :(
Пришлось исключать NumPad`ы из файла.H, и править это дело в файле.C — ну, теперь VK_NUMPAD7 набирает "1", VK_NUMPAD3 набирает "9" :)
А выше по файлу.C ещё можно запилить например альтернативные символы для NumPad/ (0x00F7 = ÷), NumPad* (0x00D7 = ×), NumPad- (0x2212 = −)… После всего проделанного, в HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\ добавляем свой 00020419… "Layout File"="RUFFERBLAT.DLL"; "Layout Text"="Russian DigitPad"; Layout Description Name"=тож какой-нибудь…
Теперь эта раскладка выбирается в "Языках и клавиатуре"…
 
Последнее редактирование:

Сейчас просматривают