c - 用于键盘映射的后台c程序

标签 c windows fonts

我在 Windows 8 系统中安装了 Bramma TTF 文件。通过 Windows 字符映射表,我能够找到单个字符代码。下面附上 map 的屏幕截图。我们可以在右下角看到“!”的字符代码。是 0x21。同样,我可以找到所有其他字母的字符代码。

Character map for Bramma TTF

现在,我使用基于美国的键盘布局为该字体定义了字符映射。例如,我将键盘中的物理字符“a”映射到第三行第一列中显示的字符。 [每当我从键盘上敲击“a”时,就必须显示相应的字符]

我想编写一个后台 C 程序,以便它监听键盘敲击,并且根据我之前定义的字符映射,我的 C 程序应该输出该映射的字符。即,当我从键盘上敲击字符“a”时,它应该返回映射的字符。

任何人都可以帮助我解决这个问题,或者只是给我一个解决方案的线索。

最佳答案

我对这些字体有点熟悉,它们出现在 SO 的其他问题中。试图处理使用这种字体的后果的用户提出的问题。他们相当严肃。

最大的问题是这种字体不兼容 Unicode。呈现到屏幕上的文本背后的实际字符串非常不同,其中包含 ANSI 字符集中的字符。当显示这些字符串的程序保存数据时,会出现可怕错误。数据文件包含原始字符串,Excel 电子表格就是一个很好的例子。当任何其他程序读取该电子表格时,它只包含乱码。当由另一台未安装相同字体的计算机上的程序读取时尤其糟糕。非常非常非常痛苦。

实际上,您甚至破坏了键盘到 ANSI 字符之间的正常映射,从而使问题变得更糟。第三行中的第一个字符是通过在键盘上输入大写 I(眼睛)产生的。

信息很明确:不要这样做。 Windows 很好地支持带有印度文字的 Unicode 兼容字体,例如 Sylfaen、Mangal、Latha 等字体。所有这些都可以在我的 Windows 8 机器上使用,距离它们通常使用的地方大约一万英里。它还在语言小程序下提供了印度语键盘布局,我只是选择了一个作为示例:

enter image description here

好吧,这是你的葬礼。您不必编写 C 程序来翻译这些击键,您需要自定义键盘布局。它是一个DLL。您通常需要 DDK 来构建它们,但有简单的工具可用于自动生成它们。没有比使用 MKLC(Microsoft 键盘布局创建器)更简单的了。网页及下载链接are here .

关于c - 用于键盘映射的后台c程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14971020/

相关文章:

c - 在 C 中使用视频/图像文件

c - 将十六进制命令传递给 c 函数

windows - 使用cx_Freeze、PyQt5、Python3构建的exe无法导入ExtensionLoader_PyQt5_QtWidgets.py并运行

ios - 有没有办法更改应用程序的默认字体

c - gdb:给定一个地址,我能找到包含它的分配 block 吗?

c - 如何创建类似答案的输入

c++ - Windows - 在 C++ 中读取鼠标的 dpi 设置

c++ - 设置服务访问规则

iphone - 在 iPhone 中以编程方式显示字体家族名称

css - 尝试在 Font Awesome 中使用 fontawesome-webfont.woff 时出错