Как сделать цифру в пиавтогу (@)? - PullRequest
0 голосов
/ 23 сентября 2019

Я в основном пытаюсь написать код на 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
"
>>> 

я скопировалфункция для изменения языка из этого вопроса

...