Что потребуется для добавления новых клавиш в Windows?

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

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

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

3 ответов


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

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

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

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


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

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

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

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

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


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

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

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

однако большинство моих персональных компьютеров были основаны на Windows, и когда дело доходит до этого, Windows действительно поддерживает только 1 true character modifier key: Shift. Это абсолютно неприемлемо для меня! Почему? Мне нужно набрать больше символов, чем это!

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

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

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

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

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

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

Итак, несмотря на претензии в другом ответе; на самом деле гораздо проще "добавить дополнительную клавишу"- или несколько на клавиатуру. Без необходимости в пользовательских драйверах или даже ничего но встроенный драйвер ОС. Все, что вам нужно сделать, это обозначить ключ как один из нескольких дополнительных ключей, найденных (и распознанных изначально 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), который используется для точного документирования в письменной форме любого языка или диалекта на Земле. Я также несколько слоев, посвященных набору эфиопского (я жил там как kid); плюс у меня есть слои для рудиментарного греческого, иврита и арабского, а также слой для символов. Кроме того, у меня есть много мертвых клавиш, запрограммированных на клавиатуре, которые идеально подходят для акцентированных букв (сначала вы нажимаете клавишу для определенной акцентной маркировки, но ничего не происходит до тех пор, пока не будут нажаты следующие (или иногда 3-5 клавиш) (если мертвые клавиши "прикованы", чтобы добавить несколько меток к одной букве, как это делает вьетнамский в крайней степени); когда фактическая буква будет набрана эти акценты или метки сложены / применены, если это возможно.

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

небольшая часть программного обеспечения под названием KbdEdit (премиум-версия), которая очень разумно оценена (IMHO).

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

другое (свободное) программное обеспечение, которое позволяет вам делать всевозможные вещи, включая использование всех клавиш-модификаторов гораздо более свободно практически для любых целей, также доступны. Он называется AutoHotKey. Я использую его в течение многих лет, чтобы делать все виды изящных вещей (это на самом деле часть моей системы для переназначения моей клавиатуры для 3 дополнительных клавиш-модификаторов (это позволяет мне "дважды использовать" клавиши, чтобы я не терял функциональность. Например, я физически переназначил два японских модификатора большого пальца на клавиши Alt. Я никогда не использую клавиши Alt для доступа к меню в приложениях windows; однако я использую программное обеспечение, которое использует сочетания клавиш, содержащие Alt. Однако, как вы помните, Alt всегда должен использоваться с Control для чего-либо, кроме навигации по меню. Таким образом, я не использовал никаких комбинаций управления с модификаторами большого пальца на моей пользовательской раскладке клавиатуры (что не создавало проблем). И у меня есть AutoHotKey, настроенный для преобразования одновременного нажатия control и модификатора thumb В "control-alt", и если мне понадобится просто Alt by сам, нажав Windows+либо thumb modifier переведен на Alt (так как я никогда не сталкивался с ярлыками, которые требовали как Windows, так и Alt, которые не создавали конфликтов.

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

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