меняем раскладку клавиатур на русскую
import time
user32 = ctypes.WinDLL('user32', use_last_error=True)
def get_foreground_window():
return user32.GetForegroundWindow()
def get_keyboard_layout(hwnd):
thread_id = user32.GetWindowThreadProcessId(hwnd, 0)
return user32.GetKeyboardLayout(thread_id)
def switch_to_russian():
hwnd = get_foreground_window()
thread_id = user32.GetWindowThreadProcessId(hwnd, 0)
HKL_russian = 0x04190419 # Русская раскладка
user32.ActivateKeyboardLayout(HKL_russian, 0)
def is_english_layout(hkl):
lang_id = hkl & 0xFFFF
return lang_id == 0x0409
if __name__ == "__main__":
while True:
hwnd = get_foreground_window()
if hwnd:
layout = get_keyboard_layout(hwnd)
if is_english_layout(layout):
switch_to_russian()
print("Переключено на русскую раскладку")
time.sleep(1)
import ctypes
import time
user32 = ctypes.WinDLL('user32', use_last_error=True)
# Получить идентификатор текущего активного окна
def get_foreground_window():
return user32.GetForegroundWindow()
# Получить идентификатор раскладки клавиатуры активного окна
def get_keyboard_layout(hwnd):
thread_id = user32.GetWindowThreadProcessId(hwnd, 0)
return user32.GetKeyboardLayout(thread_id)
# Переключить раскладку на английскую (0x0409 - English US)
def switch_to_english():
# Получаем дескриптор текущего окна
hwnd = get_foreground_window()
thread_id = user32.GetWindowThreadProcessId(hwnd, 0)
# Устанавливаем раскладку на английскую
HKL_english = 0x04090409 # English (United States)
user32.ActivateKeyboardLayout(HKL_english, 0)
def is_english_layout(hkl):
# Проверяем, что нижние 16 бит совпадают с 0x0409 (код английской раскладки)
lang_id = hkl & 0xFFFF
return lang_id == 0x0409
if __name__ == "__main__":
while True:
hwnd = get_foreground_window()
if hwnd:
layout = get_keyboard_layout(hwnd)
if not is_english_layout(layout):
switch_to_english()
print("Переключено на английскую раскладку")
time.sleep(1)
Свидетельство о публикации №125080604398