Articles of 键盘布局

如何更改键盘布局(X11 API解决scheme)

我想通过编程来改变Linux的键盘布局,X11的API函数是做什么的?

在JavaScript中获取当前的键盘布局语言

我正在使用wshShell.SendKeys从HTAinput一些文本到网站,当我目前的键盘布局不是英文,wshShell.SendKeys的结果是意料之外的。 我希望我的函数检查语言是英语,否则发送ALT + SHIFT将其更改为英语。对我来说,困难的部分是find一个返回当前键盘布局的函数。 如果有人熟悉这样做,我会很高兴知道.. 谢谢,Rotem

找出键盘布局何时更改

我正在写一个屏幕键盘,只要键盘布局改变,我想重新布局我的布局。 目前我打电话给: GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL)); 在每个按键上查看布局是否已经改变。 如果用户通过鼠标更改布局,则不起作用,直到按下键。 我想知道在当前前景窗口的键盘布局被改变时是否有任何方法可以得到通知,所以只要发生改变,我就可以重新绘制布局。

我可以更改用户的键盘input吗?

我发现这个键盘钩子代码,我试图稍微修改我的目的: http : //blogs.msdn.com/toub/archive/2006/05/03/589423.aspx 作为一个概述,我想让用户按下一个按键,说'E',并让键盘返回一个不同的字符'Z',以适应任何应用程序的焦点。 我现在改变的相关方法如下所示: private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN) { //The truely typed character: int vkCode = Marshal.ReadInt32(lParam); Console.WriteLine((Keys)vkCode); KBDLLHOOKSTRUCT replacementKey = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT)); replacementKey.vkCode = 90; // char 'Z' Marshal.StructureToPtr(replacementKey, lParam, false); //Now changed to my set character vkCode […]

如何获取当前键盘布局的代码页?

我的非Unicode应用程序需要能够处理Unicode键盘input(WM_CHAR /等),从而接收8位字符代码,然后在内部将其转换为Unicode。 9x兼容性是必需的,所以使用大多数Unicode API不是一个选项。 目前,它查看PRIMARYLANGID(GetKeyboardLayout(0))返回的语言,并在硬编码表中查找相关代码页。 我找不到一个函数来获取特定语言或键盘布局使用的代码页。 然后可以使用MultiByteToWideChar来转换字符/string。 有没有办法获得当前的键盘布局的代码页? GetACP返回默认的系统代码页面,不受当前键盘布局的影响。