Что нужно сделать, чтобы добавить в Windows новые клавиши-модификаторы?

Насколько я могу судить, понятия «Shift», «Alt» и «Control» довольно жестко закодированы с самой клавиатуры через API ОС. Иногда я вижу, что клавиши Windows используются в качестве модификатора, но, похоже, они не регистрируются как «настоящие» клавиши-модификаторы, как и любая клавиша на клавиатуре.

Но может ли человек добавить новый ключ-модификатор? Может быть, в дикой и безумной попытке вернуть клавиатуру космического курсанта? Помимо физически модифицированной клавиатуры (или, может быть, просто переназначения некоторых неиспользуемых клавиш), что еще потребуется: новые драйверы? вызовы новых API? полная перезапись ОС?

Я думаю, что такие вещи было бы намного проще сделать в ОС с открытым исходным кодом, чем в Windows, да?


person CodexArcanum    schedule 01.11.2010    source источник


Ответы (3)


Что ж, есть преимущество в наличии стандарта для клавиатур и мышей. Это заставляет вещи «работать» без необходимости в специальных драйверах или патчах для операционной системы. Но это означает, что клавиатуры и мыши должны быть стандартизированы, чтобы они «просто работали».

Итак, если вы хотите добавить на клавиатуру дополнительную клавишу - независимо от того, является ли она клавишей-модификатором - вы должны каким-то образом сделать ее полезной, что означает, что приложения должны знать об этом, и им нужен способ получать уведомления об этом. состояние ключа. К счастью, Windows и другие операционные системы с открытым исходным кодом или без него предоставляют расширяемый, а также стандартный механизм для этого: драйверы.

Короче говоря, вам потребуется предоставить драйвер для расширения стандартных функций стандартной клавиатуры так же, как вам понадобится драйвер, если вы купили одну из тех модных мышей с 19 специальными кнопками и 3 колеса прокрутки вместо стандартных двух или трех кнопок и одного колеса прокрутки.

И, наконец, вам понадобятся приложения, которые знают о вашей особой клавиатуре. В конце концов, какая польза от этой модифицированной клавиатуры, если ваше приложение игнорирует ее сверхспособности? Единственное, что вы сможете делать со своей специальной клавиатурой, - это создавать горячие клавиши, включающие ваш специальный модификатор.

person Mike Dinescu    schedule 01.11.2010

Мне любопытна ваша причина. Вы действительно хотите использовать и полностью интегрировать использование дополнительной клавиши-модификатора в повседневное использование компьютера? Если да, то каким образом? (С моей стороны это чистое любопытство; меня восхищают причины или события, приведшие к вашему запросу! И я объясню почему.)

Позвольте мне сначала заявить, что я не могу полностью ответить на заданный вами вопрос (что именно будет связано с добавлением модификатора в ОС), кроме как сказать, что это потребует гораздо больше работы, чем то, что, как я полагаю, может выполнить любой человек - даже в пределах несколько лет (если не считать настоящего компьютерного гения); но в зависимости от причин, по которым вы спрашиваете, я могу показать вам, что это, вероятно, не потребуется для ваших целей (хотя это, очевидно, предположение). На самом деле, технически модификаторов действительно существует, но они практически не документированы и используются очень редко.

Я долго размышлял над этим вопросом. Мое первое значимое знакомство с использованием персональных компьютеров было с Mac в их ранние годы. На компьютерах Mac всегда было по крайней мере две настоящие клавиши-модификаторы «персонажей»; а также две клавиши-модификаторы "команды". Я считаю, что это различие является важным, хотя обычно оно явно не объясняется и не упоминается. В современную эпоху Mac может функционально иметь до 5 клавиш-модификаторов; хотя есть некоторые ограничения на то, как их можно эффективно использовать для различных целей. Я считаю, что * nix OS могут поддерживать целых 8 модификаторов. Однако использование их с современной клавиатурой потребует некоторого переназначения.

Тем не менее, большинство моих персональных компьютеров были на базе Windows, и когда дело доходит до этого, кажется, что Windows поддерживает только 1 настоящую клавишу-модификатор символа: Shift. Для меня это абсолютно неприемлемое положение вещей! Почему? Мне нужно набрать НАМНОГО больше символов!

Почему? Потому что у меня большой интерес и опыт работы в области иностранных языков, лингвистики, фонетики и систем письма. Мне нужно иметь возможность набирать (без лишних трудностей) гораздо больше символов и символов, чем кажется, поддерживает Windows. Это в основном для развлечения, так что это не было критически срочным. И я смог получить доступ к Mac, когда мне нужно было создавать / редактировать документы, содержащие практически любой язык, кроме английского.

Таким образом, в Windows клавиша Alt внутренне называется клавишей меню, поскольку изначально она использовалась для доступа и навигации по командным меню приложений в те дни, когда Windows не использовала мышь. И он по-прежнему функционирует в этом качестве. Технически, он может работать как клавиша-модификатор только при использовании вместе с Control. Клавиатуры ISO (европейские / иностранные клавиатуры) часто имеют клавишу AltGr вместо клавиши Alt «правой стороны»; он обозначает альтернативную графику и используется для сопоставления дополнительных символов и акцентированных букв, требуемых другими языками, с «обычной» клавиатурой, делая доступным еще один или два слоя всей клавиатуры, которые эффективно удваиваются (или даже утраиваются или учетверяются) количество символов, которые можно ввести. Технически клавиша AltGr - это всего лишь одна клавиша, которая одновременно запускает клавиши Alt и Control для удобства машинисток.

На самом деле вам не нужна клавиатура ISO, чтобы использовать AltGr и получить доступ к этим дополнительным символам; однако они значительно упрощают задачу, поскольку обычно имеют символы, которые каждая клавиша может выводить, напечатанные на самой клавише, как и мы. Все, что вам действительно нужно сделать, это активировать раскладку клавиатуры для одного из этих языков (которые встроены во все версии Windows). И вам, вероятно, потребуется распечатать схему клавиатуры, которую вы выберете. Или сделайте наклейки, чтобы наклеить их на клавиатуру, пока не научитесь набирать все нужные символы.

Кстати, клавиша Windows ЯВЛЯЕТСЯ полноценной клавишей-модификатором, но ее использование ограничено для Microsoft, чтобы делегировать полномочия по своему усмотрению. (Фактически, они обозначили эти комбинации, используя числа, как «бесплатную игру», которую производители должны указывать в своих системах). На аппаратном уровне он выполнен в виде клавиши-модификатора.

Технология, которая поддерживает большинство клавиатур, обычно отлично работает для стандартного использования клавиатуры (которое обычно не включает игры) для набора текста, ввода текста / данных, исследования и так далее. Но для снижения затрат и упрощения они разработаны таким образом, чтобы клавиши, которые будут использоваться в качестве модификаторов, можно было нажимать вместе и распознавать вместе, по крайней мере, с одной или двумя другими клавишами. Тем не менее, вы быстро столкнетесь с проблемами, если попытаетесь переместить модификаторы на другие клавиши на клавиатуре и по-прежнему надеетесь активировать «горячие» горячие клавиши (одновременное нажатие 2, 3 или более клавиш), потому что эти клавиши не были разработаны и не имеют аппаратного обеспечения. функционировать как клавиши-модификаторы. Клавиша Windows - даже если она не используется таким образом в Windows (пока); имеет технические требования.

Кроме того, клавиатуры Windows можно подключить к Mac, и они будут работать нормально. Клавиша Windows соответствует клавише Apple Command; который широко используется большинством приложений для запуска сложных горячих клавиш / сочетаний клавиш - и делает это без проблем.

Итак, несмотря на претензии в другом ответе; на самом деле намного проще «добавить дополнительную клавишу» - или несколько к вашей клавиатуре. Без необходимости в специальных драйверах или даже в чем-либо, кроме встроенного драйвера ОС. Все, что вам нужно сделать, это обозначить ключ как один из нескольких дополнительных ключей, обнаруженных (и изначально распознаваемых Windows) на различных внешних клавиатурах.

Существует три основных типа клавиатуры: ANSI (американская), ISO (европейская) и JIS (японская); еще один распространенный вариант - бразильская клавиатура; обычно называется Abnt (что на самом деле относится к базовому «имени» дополнительных клавиш, найденных на этих клавиатурах: VK_ABNT_C1 и C2).

Технически на клавиатурах ISO есть один или два уникальных ключа (известных как VK_OEM_8 и VK_OEM_102). А японские клавиатуры могут иметь более 8 дополнительных клавиш; однако они обычно имеют 5-6 дополнительных клавиш, две из которых являются специальными клавишами, используемыми в различных методах преобразования нескольких десятков нажатий клавиш на клавиатуре в одну из нескольких тысяч сложных идеограмм. Другой ключ - МОДИФИКАТОР! Корейские клавиатуры также имеют это. Он работает как CapsLock, но вместо переключения на верхний регистр он переключается на корейский алфавит или японские слоговые буквы (поскольку на всех компьютерах по-прежнему требуется клавиатура, способная вводить пароли на латыни и т. Д., Насколько мне известно). Но пользователям, которые постоянно переключают системы письма, становится очень утомительно и неприятно переключать раскладку клавиатуры вперед и назад. Таким образом, они решили проблему с помощью клавиши-модификатора блокировки, которая часто имеет светодиодную подсветку, как и CapsLock, чтобы обеспечить простые, мгновенные визуальные подсказки о том, какая система письма будет создана.

Другой тип японской клавиатуры был разработан специально для простоты и скорости набора текста. Хотя она так и не стала популярной (в 80-х и 90-х годах было много разных идей и моделей, прежде чем что-либо было стандартизовано), эта клавиатура Fujitsu остается популярной и любимой для писателей и всех, кто много пишет на японском языке большой объем текста.

Его особенное качество состоит в том, что у него есть 3 большие клавиши, которые заменяют пробел, только меньшая центральная клавиша создает пробелы, а две другие являются «клавишами-модификаторами большого пальца», которые очень удобны в использовании без акробатики пальцев; их даже можно довольно удобно комбинировать со сдвигом и, таким образом, получить очень большой набор символов, которые могут печатать физически. Технически эти два модификатора также поддерживаются Windows! Хотя поддержка скудная, а документации практически нет (по крайней мере, за пределами Японии).

Тем не менее, по-прежнему можно использовать эти клавиши различными способами, если вы переназначите и измените назначение нескольких клавиш на клавиатуре, особенно если у вас есть полноценная клавиатура с цифровой клавиатурой.

На самом деле в Windows возможно иметь до 15 слоев на клавиатуре (включая базовый уровень), каждый из которых должен быть активирован уникальной комбинацией клавиш-модификаторов. На самом деле существует около 48 возможных (допустимых) комбинаций с: shift, control, Alt-Control, kana, loya и roya; так что не могу использовать даже близко к теоретической возможности.

Я использовал специальную раскладку клавиатуры, которую я разработал, которая использует все эти клавиши и имеет 15 слоев, которые позволяют мне легко составлять текст на любом языке с использованием латинского алфавита (включая любые акцентированные или измененные буквы), а также международного фонетического алфавита. (IPA), который используется для точного документирования в письменной форме любого языка или диалекта на Земле. Я также несколько слоев посвятил печатанию эфиопского языка (я жил там в детстве); плюс у меня есть слои для рудиментарного греческого, еврейского и арабского языков, а также слой для символов. Кроме того, у меня есть много мертвых клавиш, запрограммированных в моей клавиатуре, которые идеально подходят для букв с диакритическими знаками (сначала вы нажимаете клавишу для определенной акцентной маркировки, но ничего не происходит, пока не будет нажата следующая (или иногда 3-5 клавиш) (если мертвые клавиши «связаны», чтобы добавить несколько знаков к одной букве, как это делает вьетнамский в крайней степени); когда фактическая буква набирается, все эти акценты или метки будут сложены / применены, если это возможно.

Что ВАМ нужно, чтобы это стало возможным?

Небольшая программа под названием KbdEdit (версия Premium) по ОЧЕНЬ разумной цене (ИМХО).

Конечно, есть пробная версия, которую вы можете попробовать бесплатно; сайт НАБОР полезной, увлекательной и часто непонятной информацией о клавиатурах.

Также доступно другое (бесплатное) программное обеспечение, которое позволяет вам делать всевозможные вещи, включая использование всех клавиш-модификаторов НАМНОГО более свободно практически для любых целей. Он называется AutoHotKey. Я использую его в течение многих лет, чтобы делать всевозможные изящные вещи (на самом деле это часть моей системы для переназначения моей клавиатуры для трех дополнительных клавиш-модификаторов (это позволяет мне «использовать двойные» клавиши, чтобы я не терял функциональность. Например, Я физически переназначил два японских модификатора большого пальца на свои клавиши Alt. Я никогда не использую клавиши Alt для доступа к меню в приложениях Windows; однако я использую программное обеспечение, которое действительно использует сочетания клавиш, содержащие Alt. Однако, как вы, возможно, помните , Alt всегда должен использоваться с Control, чтобы делать что-либо, кроме навигации по меню. Поэтому я не использовал никаких комбинаций Control с модификаторами большого пальца на моей настраиваемой раскладке клавиатуры (что не создавало проблем). И у меня AutoHotKey настроен на преобразовать одновременное нажатие элемента управления и любого из модификаторов большого пальца в «control-alt», и если мне понадобится только Alt, нажатие Windows + любой модификатор большого пальца преобразуется в Alt (поскольку я никогда не встречал никаких сочетаний клавиш, которые требовали бы как Windows, так и Alt, что c не возникло никаких конфликтов.

Я также НЕНАВИЖУ трекпад на моем ноутбуке; пытаться использовать для прокрутки беспорядочно и раздражает; более того, он не может производить средний щелчок, который я часто использую. Итак, я изменил назначение того ключа, который никто не использует, который открывает «контекстное меню» (потому что гораздо проще просто «щелкнуть правой кнопкой мыши», чтобы открыть это меню), обычно называемый «ключом приложения». Если я удерживаю его (как пользовательский модификатор), он переводит нажатия клавиш со стрелками в движение колеса прокрутки (по осям вверх-вниз или влево-вправо) и преобразует нажатие клавиши пробела в средний щелчок. У меня также есть какая-то функция или кнопка, запрограммированная на запуск всеми другими клавишами, до которых я могу легко дотянуться этой рукой, удерживая этот «поддельный» настраиваемый модификатор. Я могу управлять своими мультимедийными приложениями, имитируя мультимедийные ключи, которых нет в моем маленьком ноутбуке, и множество других интересных вещей.

AutoHotKey, вероятно, сможет приспособиться практически по любой причине, по которой вы захотите добавить дополнительную клавишу-модификатор на клавиатуру, без на самом деле переживает всю эту чушь!

person AuralArch    schedule 15.07.2018
comment
Большое спасибо за редактирование и исправление моего ответа! Я это очень ценю. - person AuralArch; 16.07.2018

В Windows W32 API определены коды виртуальных ключей. Он 8-битный, предоставляет 256 значений, в таблице есть пробелы.

WM_KEYDOWN message работает с этими кодами.

Современные клавиатуры позволяют обнаруживать до 6 одновременных нажатий клавиш, но есть N-Key Rollover и проблемы Key Ghosting, о которых вам следует знать.

.Net API предоставляет в качестве модификатора только Alt / Shift / Control.

В двух словах - многие основные API, предоставляемые Microsoft, передают Alt / Shift / Control в качестве модификатора, даже если современные клавиатуры позволяют использовать около 5 одновременных модификаторов в дополнение к нажатию клавиш.

person gavenkoa    schedule 27.01.2017