Что нужно сделать, чтобы добавить новые клавиши-модификаторы в Windows? - PullRequest
7 голосов
/ 01 ноября 2010

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

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

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

Ответы [ 3 ]

3 голосов
/ 01 ноября 2010

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

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

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

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

0 голосов
/ 15 июля 2018

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

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

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

Тем не менее, большинство моих персональных компьютеров основаны на Windows, и когда дело доходит до этого, Windows действительно поддерживает только одну истинную клавишу-модификатор символа: Shift. Это абсолютно неприемлемое для меня положение дел! Зачем? Мне нужно набрать WAY больше символов, чем это!

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

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

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

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

Технология, которая поддерживает большинство клавиатур, как правило, прекрасно работает для стандартного использования клавиатуры (которая обычно не включает в себя игры) для набора текста, ввода текста / данных, исследования и так далее. Но для экономии затрат и упрощения они разработаны таким образом, чтобы клавиши, которые будут использоваться в качестве модификаторов, можно было нажимать и распознавать вместе, по крайней мере, с одной или двумя другими клавишами. Однако вы быстро столкнетесь с проблемами, если попытаетесь переместить модификаторы на другие клавиши на клавиатуре и по-прежнему надеетесь вызвать горячие клавиши «chorded» (нажатие 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, для предоставления простых, мгновенных визуальных подсказок о том, какая система письма будет создана.

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

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

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

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

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

Что ВЫ должны сделать это возможным?

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

Существует пробная версия, которую вы можете бесплатно проверить; сайт упакован полезной, увлекательной и часто непонятной информацией на клавиатурах.

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

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

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

0 голосов
/ 27 января 2017

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

Сообщение WM_KEYDOWN работает с этими кодами.

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

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

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

...