I'm working on a college system (windows XP) and want to set the keyboard to Dvorak when I log on. I currently have a python script that changes the desktop image.
Can I use python to change the layout as well? Or are there other ways?
I'm working on a college system (windows XP) and want to set the keyboard to Dvorak when I log on. I currently have a python script that changes the desktop image.
Can I use python to change the layout as well? Or are there other ways?
to Change keyboard layout
import win32api
win32api.LoadKeyboardLayout('00000409',1) # to switch to english
win32api.LoadKeyboardLayout('00000401',1) # to switch to arabic
and for Dvorak :
win32api.LoadKeyboardLayout("00010409",1)
or
win32api.LoadKeyboardLayout("00020409",1)
win32api
? –
Antiscorbutic loadKeyboardLayout
has a Dvorak option, which is what OP is looking for. –
Antiscorbutic answer can be found at Programmatically change keyboard to Dvorak
I would use AutoHotKey to change the layout. You could write a script remapping the keys and compile it as an executable file.
For example
q::'
+q::"
w::,
+w::<
e::.
+e::>
r::p
etc.
For those, who found this post after 2024 and code from previous answers does not work - you just need to get foreground window and send language changing message to it:
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)
© 2022 - 2025 — McMap. All rights reserved.