问题标签 [keyboard-layout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4916 浏览

windows - SendInput() 和非英文字符和键盘布局

在 Windows 中使用非英语输入键盘语言时,我无法模拟字符按键。

我尝试使用 KEYEVENTF_UNICODE 调用 SendInput():

这实际上是有效的(当然,在我的代码中,我也在按下键后执行了 KEYUP)......除了在 GTK+ 应用程序中(可能还有其他情况下它也不起作用)。

根据MSDN如果指定了 KEYEVENTF_UNICODE,SendInput 将 WM_KEYDOWN 或 WM_KEYUP 消息发送到前台线程的消息队列,其中 wParam 等于 VK_PACKET。GetMessage 或 PeekMessage 获得此消息后,将消息传递给 TranslateMessage 会发布一条 WM_CHAR 消息,该消息具有最初由 wScan 指定的 Unicode 字符。如果将此 Unicode 字符发布到 ANSI 窗口,它将自动转换为适当的 ANSI 值。

所以我相信当 KEYEVENTF_UNICODE 被传递时,SendInput() 的功能就不同了……不像平时那么低级。

对于我的一生,我想不出任何其他方法来让 SendInput() 为用户的键盘语言正确打印字符。例如,如果键盘输入语言是“瑞典语”,我不能让它输出'@'(而是打印出一个引号),我不能让它正确输出非 ASCII 字符,要么(重音字母等)。

提前致谢。

0 投票
1 回答
54 浏览

windows - 如何连接微软本地化中心

Windows 使用我的语言的键盘布局无效的代码页,我想知道是否有办法连接 Microsoft Windows 本地化中心并为他们提供正确的键盘布局以放入 Windows,

我在 Windows 博客中尝试这个(通过评论)并与一些我认识但没有收到反馈的好人通过电子邮件发送。

我仍然想与他们联系并描述问题,

有没有人知道一个好地方或任何邮件?任何帮助


有什么帮助吗?

0 投票
2 回答
8150 浏览

c# - 我可以更改用户的键盘输入吗?

我找到了这个键盘钩子代码,我试图为我的目的稍微修改:http: //blogs.msdn.com/toub/archive/2006/05/03/589423.aspx

作为一个概述,我想让用户按下一个键,比如“E”,并让键盘返回一个不同的字符“Z”,以显示任何应用程序的焦点。

我现在更改的相关方法如下所示:

控制台正确地将其输出为:

但是,焦点应用程序仍然键入“E”而不是“Z”。为什么?我将挂钩的键盘输入更改为包含“Z”而不是“E”,并且控制台行显示它已正确更改!

据我了解,调用return CallNextHookEx(_hookID, nCode, wParam, lParam);是将“立即打印”命令发送到打开的应用程序的原因。这不是它的工作原理吗?有什么东西阻止我输入我想要的字符吗?我知道像 AutoHotkey 这样的应用程序需要一个输入键,检查它,然后返回一个不同的字符。我如何在这里做同样的事情?

谢谢!

0 投票
0 回答
1330 浏览

windows - Programmatically change keyboard-layout

I'd like to be a really annoying co-worker and write a little program that randomly changes keys on the keyboard, so maybe once an hour the vowels rearrange themselves for a minute or two. I would run the program as a service I suppose..

I know I can do this permanantly via the registry what about during windows running.

Is it possible in XP? Vista? Windows 7?

I'll post the code if we get it worked out. :)

0 投票
0 回答
440 浏览

unicode - 标准键盘布局

我正在http://unicode.codeplex.com从事 FOSS 项目。在这个项目中,我们尝试收集一些关于标准键盘布局的信息。

我们想知道的是有一个地方或文件或......其中提到了精确语言的标准键盘布局。

我的意思是,如果您是德国人、美国人或阿拉伯人或...,您所在国家/地区的标准键盘布局是什么?

如您所知,每个国家/地区的布局太多,但是(在大多数国家/地区)每个国家/地区的标准组织都为键盘提供标准布局,所有人都应该使用它来防止字符不雅。

因此,如果您了解文档或仅了解您所在国家/地区(或某些国家/地区)的标准键盘布局,请填写这些信息,或者您认为可能有帮助的其他信息。

为每个国家提供的每个项目,这里是属性描述

  1. 国家= 国家名称
  2. KeyboardLayout = 标准键盘布局的名称
  3. 标准日期= 当此布局标准化时
  4. 许可证= 什么是键盘布局许可证。如果您不知道,请留空
  5. 生产者=标准组织名称
  6. projectURL = 如果项目在网络上可用并且由生产者发布,它在哪里?如果您不知道,请留空
  7. 推荐人= 您的全名
  8. RefererMail = 您的邮箱
0 投票
4 回答
2252 浏览

java - 键盘布局库在给定输入键的情况下查找相邻键(最好是 java)

有谁知道一个库(最好是java),它可以给我相邻的键给US_ENGLISH标准键盘的键输入?

例如,如果我输入字符 'd',我应该返回以下字符:[w,e,r,s,f,x,c,v]。

或者,网格操作 api 也可以工作(这样我就可以用 qwerty 键盘布局实例化一个网格并使用它来查找我的邻居)。

注 1:我使用同义词“字符”和“键”来指代字符。

注意 2:我知道我可以硬编码一种方法来将 50 个左右的主键映射到它们的邻居。我正在寻找更好的解决方案。

谢谢你。

0 投票
1 回答
785 浏览

iphone - iPhone UITextField 键盘空间切换布局

我希望用户只能输入数字和空格。我设置了keyboardType textField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;,但如果用户点击空格,键盘布局会切换为字母。

所以用户必须在每个空格后切换到我想要停止的数字布局。我知道我可以停止通过文本字段委托方法shouldChangeCharactersInRange或 NumberPad 布局输入任何空格,但我希望显示空格。

有解决方法吗?

0 投票
6 回答
78286 浏览

language-agnostic - 理想的编程键盘布局

我经常听到抱怨为了简洁而大量使用符号的编程语言,尤其是 C 和 C++(我不会接触 APL),因为它们需要频繁使用 shift 键而难以键入。一两年前,我自己也厌倦了,下载了微软的Keyboard Layout Creator,对我的布局进行了一些更改,并没有回头。速度差异惊人;通过这些简单的更改,我可以将 C++ 代码的输入速度提高 30% 左右,当然这取决于代码的复杂程度;最重要的是,我在普通文本中的打字速度没有受到影响。

我的问题是:有哪些可供编程的替代键盘布局已经流行,它们中的任何一个仍在现代使用中,您个人是否使用任何更改的布局,以及如何进一步优化我的布局?

我对标准 QWERTY 布局进行了以下更改。(我不使用Dvorak,但有一个值得一提的程序员 Dvorak布局。)

  • 用顶行中的符号交换数字,因为长或重复的文字数字通常被命名常量替换;
  • 用波浪号交换反引号,因为反引号在许多语言中很少见,但析构函数在 C++ 中很常见;
  • 用下划线交换减号,因为下划线在标识符中很常见;
  • 用方括号交换花括号,因为块比下标更常见;和
  • 用单引号交换双引号,因为字符串比字符文字更常见。

我怀疑这最后一个可能是最具争议的,因为它要求使用 shift 来输入常见的收缩,从而对运行文本的干扰最大。这种布局显着提高了我在 C++、C、Java 和 Perl 中的打字速度,并且在 LISP 和 Python 中有所提高。

0 投票
1 回答
333 浏览

ubuntu - keaboard第一行上的符号而不是数字?

我编写了很多程序,让我感到困扰的是数字是默认值,而不是前排的符号。我想尝试另一种方式(而且,不,我不想切换到德沃夏克)。如何配置 Emacs(或整个 Ubuntu)来做到这一点?

请注意,我不想弄乱我使用的现有快捷方式,例如 CTRL+1 等。

0 投票
3 回答
5903 浏览

qt - 用于 Linux 的 Qt 嵌入式。键盘布局切换

我正在使用 Qt Embedded 开发应用程序并在 linux 帧缓冲区中运行它。我需要一种输入非美国字符的方法。是否可以使用 Qt 更改键盘布局?

我试图在 Qt/X11 上运行它。布局切换和输入在那里非常好。但是当我使用 Qt/Embedded 编译它并在帧缓冲区中运行它时,我无法更改布局。

我在文档中搜索并没有找到任何关于布局切换的信息。

我认为这与文档中指定的 qt 键盘驱动程序有关。看来我应该开发自己的键盘驱动程序。但我使用的是标准键盘,我认为必须有一种标准的方式来改变输入语言?

你有什么建议?

顺便说一句,我使用的是 4.5 版本。也许 4.6 可以解决这个问题?

这里完全相同的问题:

http://lists.trolltech.com/pipermail/qt-embedded-interest/2008-August/000034.html

http://lists.trolltech.com/qt-interest/2004-02/msg00570.html