• Home
  • blog
  • photos
  • projects
  • about
Menu
  • Home
  • blog
  • photos
  • projects
  • about
June 22, 2009

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
Разное
/
hardware,howto
/
June 22, 2009
/
30 Comments
Previous MikroTik Router OS – Установка Next MikroTik – Начальная настройка

30 Replies to “Apple keyboard + Windows”

  1. Daniel Marichello says:
    September 24, 2009 at 08:46

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

    Reply
  2. Анонимный says:
    June 22, 2010 at 08:47

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

    Reply
  3. Анонимный says:
    August 12, 2010 at 08:48

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

    Reply
    1. Sergey Lagovskiy says:
      August 12, 2010 at 08:48

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

      Reply
  4. Анонимный says:
    August 18, 2010 at 08:49

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

    Reply
    1. Sergey Lagovskiy says:
      August 22, 2010 at 08:50

      У меня работают

      Reply
  5. Анонимный says:
    August 26, 2010 at 08:51

    А для Windows 7 reg файл действителен?

    Reply
    1. Sergey Lagovskiy says:
      August 28, 2010 at 08:52

      да

      Reply
  6. Анонимный says:
    December 1, 2010 at 08:52

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

    Reply
  7. Александр says:
    December 15, 2010 at 08:53

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

    Reply
  8. Blatero says:
    January 6, 2011 at 08:53

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

    Reply
  9. Sandr says:
    February 25, 2011 at 08:54

    Александр писал:
    Сергей добрый вечер..
    а можно ли попросить сделать рег файл со всеми изменениями кроме: оставить на месте клавиши 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

    Reply
  10. zvukarik says:
    February 25, 2011 at 08:54

    спасибо!

    Reply
  11. Анонимный says:
    March 20, 2011 at 08:55

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

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

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

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

    Reply
    1. Sergey Lagovskiy says:
      March 21, 2011 at 08:56

      > Хотелось бы добавить лишь клавишу
      > "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 у меня ни разу не заработал хаб, клавиатура же определилась как клавиатура, а не дополнительный набор усб портов, как это происходит в случае с хабом 😉

      Reply
  12. Анонимный says:
    April 1, 2011 at 08:57

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

    Reply
  13. Анонимный says:
    April 27, 2011 at 08:57

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

    Reply
  14. Анонимный says:
    December 1, 2011 at 08:58

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

    Reply
  15. Анонимный says:
    December 13, 2011 at 08:58

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

    Reply
  16. Анонимный says:
    March 11, 2012 at 08:59

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

    Reply
  17. Анонимный says:
    November 3, 2013 at 09:00

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

    Reply
  18. Анонимный says:
    November 3, 2013 at 09:01

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

    Reply
    1. Анонимный says:
      November 3, 2013 at 09:03

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

      Reply
  19. Евгений Псарев says:
    January 12, 2014 at 09:03

    Большое спасибо!!! Очень полезная статья.

    Reply
  20. v0vets says:
    January 18, 2014 at 09:04

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

    Reply
    1. emoxam says:
      March 15, 2015 at 09:04

      Спасибо!!!!

      Reply
  21. Евгений Головин says:
    May 14, 2014 at 09:05

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

    Reply
  22. vitaly s says:
    January 7, 2015 at 09:06

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

    Reply
  23. Виталий Шевченко says:
    December 22, 2015 at 09:06

    Ребят помогите завести еще USB порты cбоку

    Reply
  24. Unknown says:
    May 6, 2016 at 09:07

    не чего не понял

    Reply

Leave a Reply to Анонимный Cancel reply

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

Notepads

  • Админево
  • Разработка
  • Фотография
  • Электроника
  • Разное
Menu
  • Админево
  • Разработка
  • Фотография
  • Электроника
  • Разное

Tags

Tags
antiquities (6) aquarium (1) avd (1) csharp (1) dos (6) hardware (1) howto (16) linux (1) mikrotik (14) ms sql (2) netflow (1) norton commander (2) powershell (1) router os (14) sql (2) virtualbox (6) windows (2) wsus (2) моделирование (1) мудрость (1)

Links

  •   i’m on facebook
  •   my photos on flickr
  •   my code on github
  •   write me email
  •   headhunt me
Menu
  •   i’m on facebook
  •   my photos on flickr
  •   my code on github
  •   write me email
  •   headhunt me
Яндекс.Метрика

Sergey Lagovskiy © 2009-2021 Οδύσσεια 0.6