Я в основном пытаюсь написать код на python, который печатает некоторые буквы, используя модуль pyautogui.Мне нужно, чтобы он писал в (@), потому что я хочу использовать код для записи в посте на Facebook, и мне нужно, чтобы он пометил моих друзей.Проблема в том, что моя раскладка клавиатуры итальянская, и я не могу набрать текст.Я также пытался изменить язык клавиатуры во время оцифровки, но у меня ничего не вышло.Это код:
import pyautogui
pyautogui.typewrite('@')
не работает.Вывод:
>>>
Итак, я попытался изменить код раскладки клавиатуры (потому что заметил, что если вручную установить раскладку клавиатуры на английский:
pyautogui.hotkey('shift', '2')
работает).Так что это код, но вместо @ i get ", который (shift + 2) в итальянской раскладке клавиатуры.
import ctypes
from ctypes import wintypes
def change_layout(locale_id_bytes):
KLF_ACTIVATE = 0x00000001
klid = ctypes.create_string_buffer(locale_id_bytes)
user32_dll = ctypes.WinDLL("user32")
kernel32_dll = ctypes.WinDLL("kernel32")
LoadKeyboardLayout = user32_dll.LoadKeyboardLayoutA
LoadKeyboardLayout.argtypes = [wintypes.LPCSTR, wintypes.UINT]
LoadKeyboardLayout.restype = wintypes.HKL
GetLastError = kernel32_dll.GetLastError
GetLastError.restype = wintypes.DWORD
klh = LoadKeyboardLayout(klid, KLF_ACTIVATE)
print("{} returned: {}".format(LoadKeyboardLayout.__name__, hex(klh)))
print("{} returned: {}".format(GetLastError.__name__, GetLastError()))
def digit_at ():
change_layout (b"00000409")
import pyautogui
pyautogui.hotkey('shift', '2')
change_layout (b"00000410")
digit_at()
вывод:
LoadKeyboardLayoutA returned: 0x4090409
GetLastError returned: 0
LoadKeyboardLayoutA returned: 0x4100410
GetLastError returned: 0
"
>>>
я скопировалфункция для изменения языка из этого вопроса