用python改变键盘布局?

问题描述 投票:0回答:4

我正在开发一个大学系统(Windows XP),并且希望在登录时将键盘设置为 Dvorak。我目前有一个可以更改桌面图像的 python 脚本。

我也可以使用 python 来更改布局吗?或者还有其他方法吗?

python keyboard registry
4个回答
3
投票

更改键盘布局

import win32api
win32api.LoadKeyboardLayout('00000409',1) # to switch to english
win32api.LoadKeyboardLayout('00000401',1) # to switch to arabic

对于德沃夏克:

win32api.LoadKeyboardLayout("00010409",1)

win32api.LoadKeyboardLayout("00020409",1)

1
投票

1
投票

我会使用 AutoHotKey 来更改布局。您可以编写一个重新映射按键的脚本并将其编译为可执行文件。

例如

q::'
+q::"
w::,
+w::<
e::.
+e::>
r::p

等等


0
投票

对于那些在 2024 年之后发现这篇文章并且之前答案中的代码不起作用的人 - 您只需要获取前台窗口并向其发送语言更改消息即可:

import win32gui
import win32api
import win32process

WM_INPUTLANGCHANGEREQUEST = 0x0050  # win32api const
EN = 0x4090409  # English
UK = -0xf57fbde # Ukrainian

window_handle = win32gui.GetForegroundWindow()
win32api.PostMessage(window_handle, WM_INPUTLANGCHANGEREQUEST, 0, EN)
# win32api.PostMessage(window_handle, WM_INPUTLANGCHANGEREQUEST, 0, UK)
© www.soinside.com 2019 - 2024. All rights reserved.