将新修改键添加到Windows需要什么?

时间:2010-11-01 15:58:24

标签: windows keyboard operating-system drivers modifier-key

据我所知,“Shift”,“Alt”和“Control”的概念很好地通过键盘本身直接通过OS API进行编码。有时我看到Windows键用作修饰符,但它似乎没有注册为“真正的”修饰键,比键盘上的任何键都要多。

但是一个人可以添加一个新的修饰键吗?也许在疯狂而疯狂的努力带回空间军校学生键盘?除了物理修改的键盘(或者只是重新映射一些未使用的键),还需要什么:新的驱动程序?新的API调用?完全重写操作系统?

我猜这种事情在开源操作系统上比在Windows上要容易得多,是吗?

3 个答案:

答案 0 :(得分:3)

嗯,有一个键盘和鼠标标准的好处。它使事情“工作”而不需要特殊的驱动程序或操作系统补丁。但这意味着键盘和鼠标必须自己标准化才能让它们“正常工作”。

所以,如果你想在键盘上添加一个额外的键 - 无论它是否是一个修改键 - 你必须以某种方式使它有用,这意味着应用程序需要知道它,他们需要一种方法来通知此密钥的状态。幸运的是,Windows和其他操作系统是否开源,为此提供了可扩展的标准机制:驱动程序

所以,简而言之,你需要提供一个驱动程序来扩展标准键盘的标准功能,就像你需要一个驱动程序一样,如果你买了一个带有19个特殊功能的花式鼠标按钮和3个滚轮而不是标准两个或三个按钮和一个滚轮。

最后,你需要知道你的特殊键盘的应用程序。如果你的应用程序不知道它的超级大国,那么拥有这个改装键盘有什么用呢?您可以使用特殊键盘唯一能够创建包含特殊修饰符的热键。

答案 1 :(得分:0)

Windows W32 API定义Virtual-Key Codes。它是8位,它提供256个值,表中有一些空白。

WM_KEYDOWN message对这些代码进行操作。

现代键盘最多可同时检测6个按键,但您应该注意N-Key RolloverKey Ghosting个问题。

.Net API仅将Alt / Shift / Control公开为修饰符。

简而言之 - Microsoft提供的许多核心API在Alt / Shift / Control上作为修饰符进行中继,即使现代键盘除了按键外还允许接近5个同时修饰符。

答案 2 :(得分:0)

我很好奇你的理由。您实际上是否希望在日常计算机使用中充分利用和整合其他修饰键的使用?如果真是这样,那么是以哪种方式? (这纯粹是我的好奇心;导致您查询的原因或事件让我着迷!我将解释原因。)

让我首先说明,我不能完全回答您所提出的问题(向操作系统添加修饰符到底涉及什么),只是说这将花费比我相信任何人都能完成的工作更多的工作。 -甚至在几年之内(某些真正的计算机天才除外);但是根据您提出问题的原因,我可以向您显示,出于您的目的可能并不需要(尽管这显然是猜测)。实际上,从技术上讲,实际上存在更多的修饰符,但是它们实际上是无证的,很少使用。

我已经在这个问题上玩了很长时间了。关于使用个人计算机的第一个有意义的介绍是在Mac的早期使用Mac。 Mac一直至少有两个真正的“字符”修饰键;以及两个“命令”修改键。我认为这一区别很重要,尽管通常没有明确说明或提及。在现代时代,Mac在功能上最多可以具有5个修改键。尽管在如何有效地将它们用于各种目的方面存在一些限制。 *我相信,nix操作系统可以支持多达8个修饰符。但是,将它们与现代键盘配合使用将需要重新映射。

但是,我的大多数个人计算机都是基于Windows的,而实际上,Windows似乎仅支持1个真正的字符修饰键:Shift。对我来说,这是绝对无法接受的状况!为什么?我需要输入更多的字符!

为什么?因为我对外语,语言学,语音和写作系统有浓厚的兴趣和背景。我需要能够(而不用太困难地)键入比Windows似乎支持更多的字符和符号。不过,这主要是出于娱乐目的,因此并不是紧迫的事情。而且,当我需要创建/编辑几乎包含除英语之外的任何其他语言的文档时,我就可以访问Mac。

因此,在Windows中,Alt键在内部称为“菜单键”,因为它最初是在Windows采用鼠标之前的几天用于访问和浏览应用程序的命令菜单的。而且它仍然以这种身份发挥作用。从技术上讲,仅当与Control结合使用时,它才能用作修饰键。 ISO键盘(欧洲/外国键盘)通常具有一个称为AltGr的键,而不是“右侧” Alt键。它代表“备用图形”,用于通过使整个键盘的另一整层或两层都可以访问,从而将其他语言需要的其他符号和带重音的字母映射到“常规”键盘,从而有效地加倍(甚至三倍或四倍)可以输入的字符数。从技术上讲,AltGr键只是一个同时触发Alt和Control键的键,以方便打字员手指。

您实际上不需要ISO键盘即可使用AltGr并访问这些其他字符;但是,它们使操作变得容易得多,因为它们通常都有一个每个键可以产生的字符,就像我们所做的那样,该字符可以打印在键本身上。您真正需要做的就是为其中一种语言(所有Windows版本都内置)激活键盘布局。您可能需要打印出选择使用的键盘图。或在您的键盘上贴上贴纸,直到学习如何键入所需的所有符号为止。

顺便说一句,Windows键是完全成熟的修饰键,但是Microsoft只能根据自己的意愿来限制使用它。 (实际上,他们将使用数字的组合指定为OEM可以在其系统上指定的“免费游戏”)。它被设计为硬件级别的修改键。

支持大多数键盘的技术通常可以很好地用于键盘的标准用法(通常不包括游戏),以进行键入,输入文本/数据,研究等工作。但是,为了确保安全和简化成本,对它们进行了设计,以便可以将用作修饰符的键与至少一个或两个其他键一起按下并识别。但是,如果您尝试将修饰符移至键盘上的其他键,并且仍然希望触发“和弦”热键(一次按下2、3个或更多键),则会很快遇到问题,因为这些键不是经过设计并且没有提供硬件用作修饰键。 Windows密钥-即使到目前为止Windows中并未以这种方式使用它;具有技术要求。

此外,Windows键盘可以插入Mac,并且可以正常工作。 Windows键对应于Apple Command键;大多数应用程序都广泛使用该工具来触发复杂的热键/键盘快捷键,并且这样做毫无问题。

因此,尽管在另一回应中提出了要求;实际上,将“一个额外的键”或几个“添加到键盘”要容易得多。不需要自定义驱动程序,甚至不需要内置OS驱动程序。您所需要做的就是将键指定为在各种外来键盘上发现的(由Windows本地识别的)少数附加键之一。

共有三种主要的键盘类型:ANSI(美国),ISO(欧洲)和JIS(日语);另一个常见的变体是巴西键盘;通常称为Abnt(实际上指的是这些键盘上的额外键的基础“名称”:VK_ABNT_C1和C2)。

从技术上讲,在ISO键盘上有一个或两个唯一键(称为VK_OEM_8和VK_OEM_102)。日语键盘可以有8个以上的附加键。但是,它们通常具有5-6个附加键,其中两个是特殊键,可用于将键盘上的几十个按键转换为数千个复杂表意文字的各种方法。另一个是MODIFIER键!韩语键盘也具有此功能。它的工作方式类似于CapsLock,但不是切换到大写字母,而是切换到韩文字母或日语音节(据我所知,因为所有计算机仍需要能够输入拉丁字母作为密码的键盘等)。但是对于不断切换书写系统的用户来回切换键盘布局而言,这变得非常繁琐和令人沮丧。因此,他们使用了一个锁定修改键来解决该问题,该修改键通常具有一个LED灯,就像CapsLock一样,可以提供关于生成哪种书写系统的简单,即时的视觉提示。

开发了另一种日语键盘,其目的是简化打字速度。尽管它从未真正起过作用(在80年代和90年代标准化之前,有很多不同的想法和模型),但富士通的这款键盘仍然很受欢迎,并受到作家和许多使用日语撰写大量文字的人的喜爱。 / p>

它的特殊质量是它有3个大键代替空格键,只有较小的中心键产生空格,另外两个是“拇指修饰键”,非常方便使用而无需手指杂技;它们甚至可以与换挡相当舒适地结合在一起,从而提供了可物理键入的字符的超大清单。从技术上讲,Windows也支持这两个修饰符!虽然支持很少,但几乎没有文档(至少在日本以外)。

但是,如果您重新映射键盘并重新调整键盘上的几个键的用途,仍然有可能以各种方式使用这些键,尤其是当您使用带数字键盘的完整键盘时。

实际上,在Windows中,键盘上最多可以包含15个层(包括基本层),每个层都必须由修饰键的唯一组合激活。实际上,大约有48种可能(有效)的组合,它们具有:shift,control,Alt-Control,kana,loya和roya;因此不能在理论可能性附近的任何地方使用。

我一直在使用一种特殊的键盘布局,该布局使用所有这些键并具有15层,这使我可以轻松地使用拉丁字母(包括任何带重音或修饰字母的)以及国际语音字母(IPA),用于精确地以书面形式记录地球上任何语言或方言的文字。我还分几层专门打字Ethiopic(我小时候住在这里);另外,我还有用于基本希腊语,希伯来语和阿拉伯语的图层以及用于符号的图层。另外,我在键盘上编程了很多死键-非常适合重音字母(首先您按键来进行特定的重音标记,但是直到按下下一个(有时是3-5个键)之后,任何操作都不会发生(如果死键被“链接”以在单个字母上添加多个标记,例如越南语在一个极端的程度);在键入实际字母时,将尽可能叠加/应用所有这些重音或标记。

您需要做什么才能实现?

一小段名为KbdEdit的软件(高级版),价格非常合理(IMHO)。

有一个试用版,您当然可以免费签出;该网站的键盘上有很多有用,有趣且经常晦涩难懂的信息。

其他(免费)软件可以让您执行各种操作,包括更自由地使用所有修饰键,几乎可以用于任何目的。它称为AutoHotKey。多年来,我一直在使用它来做各种漂亮的事情(实际上,这是我的键盘重新映射3个其他修饰键的系统的一部分(它使我可以“双重使用”键,因此我不会失去功能。例如,我已经将两个日语的拇指修饰符重新映射到我的Alt键上,从未使用过Alt键来访问Windows应用程序中的菜单;但是,我使用的软件确实利用了包含Alt的键盘快捷键。 ,Alt必须始终与Control一起使用才能执行除导航菜单以外的任何操作。因此,我没有在自定义键盘布局上使用Control和拇指修饰符的任何组合(这不会带来任何挑战),并且将AutoHotKey配置为将同时按下Control和任一Thumb修饰符转换为“ control-alt”,如果我碰巧只需要Alt,则按Windows +任一Thumb修饰符都会转换为Alt(因为我从未遇到过同时需要Windows和Windows 7的任何快捷方式替代那个没有冲突。

我还讨厌笔记本电脑上的触控板;试图使用滚动是不稳定和令人发指的;此外,它无法产生我广泛使用的中键。因此,我重新设计了没有人使用的用于打开“上下文菜单”的键(因为“右键单击”以打开该菜单要容易得多),通常称为“应用程序键”。如果将其按住(如自定义修饰符),它将按箭头键转换为滚轮移动(沿上下或左右轴),并将空格键转换为中键。我还具有一些编程的功能或按钮,可以通过按住“人造”自定义修饰符用那只手轻松触及的所有其他按键来触发。我可以通过模拟我的小型笔记本电脑没有的媒体密钥以及许多其他有趣的东西来控制自己的媒体应用。

AutoHotKey可能会出于大多数原因而适应您想要向键盘添加额外的修饰键的情况,而无需实际经历所有繁琐的工作!