OS X Cocoa - 将虚拟扫描代码与 Char 相互转换

发布于 2024-12-02 20:31:26 字数 105 浏览 1 评论 0原文

Windows 上是否有相当于 VkKeyScan 和 ToUnicode 函数的可可/碳,用于在虚拟扫描代码和 unicode 字符串之间进行转换?我还想反之亦然地执行此转换(从字符到扫描码)。

Is there a cocoa / carbon equivalent to the VkKeyScan and ToUnicode functions present on windows for translating between virtual scan codes and a unicode string? I would also like to perform this conversion vice versa (going from a char to a scan code).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拥醉 2024-12-09 20:31:26

可悲的是,我不确定是否存在。 CGEventNSEvent (不是免费桥接,但 NSEvent 可以来回转换)是事件(包括按键)的标准容器,因此可以从设备相关的扫描代码进行转换到 unicode 字符串序列,但似乎没有办法走向另一个方向——从 unicode 字符到所需的设备相关按键序列。

下面有一个简短的评论 CGEventCreateKeyboardEvent 表示:

必须输入生成字符所需的所有击键,
包括修饰键。例如,要产生“Z”,请使用 SHIFT 键
必须按下,“z”键必须按下,然后按下 SHIFT 和“z”键
必须发布:

但是随后显示的序列对于 Shift 和 z 键具有硬编码且无法解释的常量。

I'm not sure there is, sadly. CGEvent and NSEvent (which aren't toll-free bridged, but NSEvent can convert back and forth) are the standard containers for events including key presses and as a result can convert from device-dependent scan codes to unicode string sequences but there seems to be no way to go in the other direction — from a unicode character to the required sequence of device-dependent key presses.

There's a brief comment underneath CGEventCreateKeyboardEvent that:

All keystrokes needed to generate a character must be entered,
including modifier keys. For example, to produce a 'Z', the SHIFT key
must be down, the 'z' key must go down, and then the SHIFT and 'z' key
must be released:

But the sequence shown then has hardcoded and unexplained constants for the shift and z keys.

甜扑 2024-12-09 20:31:26

UCKeyTranslate()

UCKeyTranslate().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文