我在 Windows 8 系统中安装了 Bramma TTF 文件。通过 Windows 字符映射表,我能够找到单个字符代码。下面附上 map 的屏幕截图。我们可以在右下角看到“!”的字符代码。是 0x21。同样,我可以找到所有其他字母的字符代码。
现在,我使用基于美国的键盘布局为该字体定义了字符映射。例如,我将键盘中的物理字符“a”映射到第三行第一列中显示的字符。 [每当我从键盘上敲击“a”时,就必须显示相应的字符]
我想编写一个后台 C 程序,以便它监听键盘敲击,并且根据我之前定义的字符映射,我的 C 程序应该输出该映射的字符。即,当我从键盘上敲击字符“a”时,它应该返回映射的字符。
任何人都可以帮助我解决这个问题,或者只是给我一个解决方案的线索。
最佳答案
我对这些字体有点熟悉,它们出现在 SO 的其他问题中。试图处理使用这种字体的后果的用户提出的问题。他们相当严肃。
最大的问题是这种字体不兼容 Unicode。呈现到屏幕上的文本背后的实际字符串非常不同,其中包含 ANSI 字符集中的字符。当显示这些字符串的程序保存数据时,会出现可怕错误。数据文件包含原始字符串,Excel 电子表格就是一个很好的例子。当任何其他程序读取该电子表格时,它只包含乱码。当由另一台未安装相同字体的计算机上的程序读取时尤其糟糕。非常非常非常痛苦。
实际上,您甚至破坏了键盘到 ANSI 字符之间的正常映射,从而使问题变得更糟。第三行中的第一个字符是通过在键盘上输入大写 I(眼睛)产生的。
信息很明确:不要这样做。 Windows 很好地支持带有印度文字的 Unicode 兼容字体,例如 Sylfaen、Mangal、Latha 等字体。所有这些都可以在我的 Windows 8 机器上使用,距离它们通常使用的地方大约一万英里。它还在语言小程序下提供了印度语键盘布局,我只是选择了一个作为示例:
好吧,这是你的葬礼。您不必编写 C 程序来翻译这些击键,您需要自定义键盘布局。它是一个DLL。您通常需要 DDK 来构建它们,但有简单的工具可用于自动生成它们。没有比使用 MKLC(Microsoft 键盘布局创建器)更简单的了。网页及下载链接are here .
关于c - 用于键盘映射的后台c程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14971020/