Apple keyboard + Windows

Однажды появилась у меня клавиатура Apple Keyboard aluminum, удобная, красивая, но есть определенная несовместимость в раскладке к которой обычно привыкаешь.

Основной проблемой стало полное отсутствие клавиши Insert, на ее месте располагается клавиша Fn, которая расширяет возможности функциональных клавиш и абсолютно бесполезна в Windows т.к. при нажатии на нее не передается никакой scan код. Нет привычных Print Screen или Pause/Break, зато теоретически можно с помощью дополнительных драйверов научить клавиатуру от apple быть клавиатурой от apple, т.е. уметь регулировать яркость монитора, управлять медиаплеером, громкостью, открывать лоток CD-ROMа, теоретически, потому что мне это ничего не надо, так что не будем на это терять время.

Посмотрим на клавиатуру по ближе и поймем, чего на в ней нехватает и что тут лишнее:

  • Клавиша открытия лотка CD-ROMa нам не интересна, не трогаем ее.
  • С клавишей Fn ни чего поделать нельзя, так что она просто будет занимать место на клавиатуре.
  • Insert перенесем на F13.
  • Print Screen на F14.
  • Break на F15 (Pause работать не будет, только комбинация Ctrl+Break).

Далее меняем местами Alt и Command, что бы было привычнее.

Ну и чуть чуть мультимедиа:

  • F16 – уменьшить громкость
  • F17 – увеличить громкость
  • F18 – Отключить звук (mute)

Для всех этих действий можно воспользоваться готовыми программами, на пример SharpKeys, суть их работы заключается в правке ветки реестра [HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout], но некоторые действия с помощью этих программ задать не получается (на пример назначить клавише F15 действие Break).

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

В ветви реестра HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout есть двоичный параметр с именем “Scancode Map”. Он имеет следующую структуру:

  • Первые 8 байт заполнены нулями 00,00,00,00,00,00,00,00
  • Девятый байт равен количеству клавиш, которые необходимо переназначить + 1, т.е. если надо переназначить 2-е клавиши, то девятый байт равен 03
  • 10, 11, 12 так же заполнены нулевыми значениями
  • Далее необходимо определить шестнадцатеричные скан-коды клавиш, которые вы хотите переназначить. Допустим, вы хотите изменить функцию клавиши Right Ctrl на Caps Lock. Находим код Right Ctrl – 1D E0 и код Caps Lock – 3A 00. Теперь дописываем в параметр “Scancode Map” сначала значение Caps Lock, а затем значение Right Ctrl.
  • Затем осталось дописать в конец параметра еще четыре нулевых байта.

Для примера с переназначеним Right Ctrl на Caps Lock параметр должен выглядеть так: 00,00,00,00,00,00,00,00,02,00,00,00,3A,00,1D,E0,00,00,00,00.

Чтобы переназначить более чем одну клавишу, необходимо таким же образом просто добавлять в конец параметра пары кодов клавиш (вначале клавишу “на которую”, затем клавишу “с которой”). Например, чтобы переназначить Caps Lock на Left Shift и Left Alt на Backspace одновременно, параметр должен выглядеть так: 00,00,00,00,00,00,00,00,03,00,00,00,2A,00,3A,00,0E,00,38,00,00,00,00,0 0.

Чтобы просто заблокировать клавишу, следует переназначить её на “00,00”.

Чтобы изменения вступили в силу, необходимо перезагрузить компьютер. Можно переназначить клавиши и для конкретного пользователя. В этом случае параметр “Scancode Map” следует разместить в ветви HKEYCURRENTUSER\Keyboard Layout, а для вступлений изменений в силу будет достаточно перелогиниться.

Вот некоторые кода:

e0 1c (Keypad Enter)1c (Enter)
e0 1d (RCtrl)1d (LCtrl)
e0 2a (fake LShift)2a (LShift)
e0 35 (Keypad-/)35 (/?)
e0 36 (fake RShift)36 (RShift)
e0 37 (Ctrl-PrtScn)37 (*/PrtScn)
e0 38 (RAlt)38 (LAlt)
e0 46 (Ctrl-Break)46 (ScrollLock)
e0 47 (Grey Home)47 (Keypad-7/Home)
e0 48 (Grey Up)48 (Keypad-8/UpArrow)
e0 49 (Grey PgUp)49 (Keypad-9/PgUp)
e0 4b (Grey Left)4b (Keypad-4/Left)
e0 4d (Grey Right)4d (Keypad-6/Right)
e0 4f (Grey End)4f (Keypad-1/End)
e0 50 (Grey Down)50 (Keypad-2/DownArrow)
e0 51 (Grey PgDn)51 (Keypad-3/PgDn)
e0 52 (Grey Insert)52 (Keypad-0/Ins)
e0 53 (Grey Delete)53 (Keypad-./Del)
e0 5b (LeftWindow)
e0 5c (RightWindow)
e0 5d (Menu)
 Set-1 make/breakSet-2 make/break
Powere0 5e / e0 dee0 37 / e0 f0 37
Sleepe0 5f / e0 dfe0 3f / e0 f0 3f
Wakee0 63 / e0 e3e0 5e / e0 f0 5e

Ну а решение проблемы с клавиатурой будет выглядеть так:

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,0b,00,00,00,52,e0,64,00,37,
e0,65,00,\ 46,e0,66,00,5b,e0,38,00,38,00,5b,e0,5c,e0,38,e0,38,e0,5c,
e0,2e,e0,67,00,30,\ e0,68,00,20,e0,69,00,00,00,00,00

  1. Классная статья! У меня клавиатура модели А1016, клавиши другие, но проблемы те же. Ничего не менял, просто привык к тому что работает. А теперь, прочитав такие тонкости, думаю сделаю всё на свой лад.

  2. статья и правда класнная,но нет файла реестра который можно просто запустить и установить данную клаву?я просто не дружу с реестром…
    заранее спасибо,ответ буду ждать по адресу bss-01@mail.ru

  3. А где можно посмотреть коды,чтобы переназначить клавиши?
    У меня клавиатура Apple Wireless Keyboard, то есть она работает через блютус, отсутствуют кнопки делит, номе, а также отдельный блок цифровых клавиш.
    Хотелось бы сделать кнопку делит из кнопки открытия диска (она как раз над бэкспейсом), а также добавить кнопки номе, енд, инсерт, принт скрин.
    Из свободных кнопок только кнопка fn и кнопка "/ или в английской раскладке | " кнопки / почему то две, поэтому одна лишняя.
    Также по умолчанию в медиаплеере кнопки F7, F8, F9 работают со звуком, а хотелось бы переназначить их на F10, F11, F12, где указаны соответствующие вторые значения. Ну и добавить управление воспроизведением на кнопки F7, F8, F9; добавить управление подсветкой экрана на кнопки F1, F2.
    Возможно ли это сделать путем манипуляций с реестром, либо же только специальные программы нужны?

    1. На кнопку открытия диска у меня не получилось ничего назначить, а в остальном можно поиграться с утилиткой Sharp Keys http://www.randyrants.com/sharpkeys/ она выполняет все тоже самое, но в относительно понятном интерфейсе.

  4. Здравствуйте! Скажите Сергей, а будет ли работать F8-F12 в Биос (выбор устройства при загрузке с которого грузиться и т.д.)

  5. Добрый день!
    У меня блютуз клавиатура apple. Установлена OC Win 7. Возможно ли на кнопку F3 повесить функцию переключения окон (Win+Tab). Если да, то как это сделать.

  6. Сергей добрый вечер..
    а можно ли попросить сделать рег файл со всеми изменениями кроме: оставить на месте клавиши ALT и CMD… как есть. заранее огромное спасибо.
    и еще вопрос. как откатиться к старым значениям?
    если придется ставить win клавиатуру

  7. большое спасибо за помощь. под Win7 параметра Scancode Map у меня в реестре не существовало совсем, но его можно просто создать. все работает прекрасно.

  8. Александр писал:
    Сергей добрый вечер..
    а можно ли попросить сделать рег файл со всеми изменениями кроме: оставить на месте клавиши ALT и CMD…как есть.

    Сам тоже склоняюсь к такому решению:
    достаточно из регфайла удалить:
    5b,e0,38,00,38,00,5b,e0,5c,e0,38,e0,38,e0,5c,e0,
    поясню
    5b,e0,38,00, lalt>lwin
    38,00,5b,e0, lwin>lalt
    5c,e0,38,e0, ralt>rwin
    38,e0,5c,e0, rwin>ralt

  9. Сегоднгя подрубил клаву Apple Keyboard (MB110) с цифровым блоком клафиш!

    Windows 7 x86, винда сама нашла все дрова и все поставила, клава работает отлично, с привычной для РС клавиатур раскладкой (странно, читал посты, и обычно все это делали вручную, а у меня все стало автоматом!!))), но одно "НО "! Хотелось бы добавить лишь клавишу "PrintScreen ", например на клавишу F13… больше ничего не интересует и не тревожит… Как это сделать?
    В ветке реестра по данному пути "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout ", имеются еще 2 папки…
    "DosKeybCodes " и "DosKeybDs "…
    Где и что менять – не пойму…

    Подскажите, как назначить ПринтСкрин на клавишу F13 ?

    И еще одно, а это нормально, что встроенный в клавиатуру ХАБ не работает с Флэхами? Система, при вставлении флэшки пишет, что не хватает мощности и энергии, что можно сделать с этим?

    1. > Хотелось бы добавить лишь клавишу
      > "PrintScreen ", например на клавишу F13

      как то так, ну или с помощью Sharp Keys (http://www.randyrants.com/sharpkeys/)

      REGEDIT4

      [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout]
      "Scancode Map "=hex:00,00,00,00,00,00,00,00,02,00,00,00,37,e0,64,00,00,00,00,00,00

      > И еще одно, а это нормально, что встроенный в
      > клавиатуру ХАБ не работает с Флэхами? Система,
      > при вставлении флэшки пишет, что не хватает
      > мощности и энергии, что можно сделать с этим?

      Да, на PC у меня ни разу не заработал хаб, клавиатура же определилась как клавиатура, а не дополнительный набор усб портов, как это происходит в случае с хабом 😉

  10. день добрый Сергей!
    как настроить F19 на Калькулятор. с помощью Sharp Keys

  11. Добрый вечер Сергей !
    Подскажите пожалуйста как определить + на прибавление громкости(громче) в wmp, а – в уменьшении(тише)?

  12. Добрый Вечер! Помогите, пожалуйста… Программа, которая некоторые клавиши меняет у меня не работает. Пожалуйста, пропишите в файлике Управление музыкой на F16.17.18 и переключение треков на F13.14.15 Помогите, пожалуйста. Подарили клавиатура а разобраться так и не смог

  13. Спасибо большое! Наконец-то Ctrl-Break работает и на эппл-клавиатуре!

  14. Добрый день Сергей! Я нашел решение как кнопку Fn замапать как Insert и вернуть остальные клавиши типа ScrollLock. Поищите в гугле драйвер hidfalum. Специально для нашей родненькой клавы написан.

  15. Сергей, а можете подсказать как на клавишу, открывающую сидиром, запрограммировать переход в спящий режим?
    Как откорректировать выложенный вами реестр???
    Если не сложно, можно на почту ty333@мэйл точка ру

  16. В windows 8 работало нормально, обновил до 8.1 и перестало работать… Сделайте пожалуйста куп файл под windows 8.1

    1. Тупанул, все работает, просто копьютер не перезагрузил…

  17. ну, вообще-то, Hidfalum driver всё делает еще лучше – в том смысле, что Fn клавиша работает нормально как Insert и не "бесполезна " (как написано в этой статье)

  18. Все работает, а как откатать обратно? Не понравилось(

  19. Поддерживаю последний вопрос!! Как откатиться назад? Выложите файл пож-та!

Leave a Reply

Your email address will not be published. Required fields are marked *

Notepads

Tags

Links