Python simular keydown

Después de buscar durante varias horas, me pregunto si es posible simular una pulsación de tecla en el teclado. Por ejemplo, quiero que mi programa contenga laxecla @ durante cinco segundos, de modo que cuando lo ejecute en el bloc de notas parecería ver algo como esto:xxxxxxxxxxxxx. Lo intenté con diferentes códigos en Internet, lo mejor que pude encontrar hasta ahora es esto:

import ctypes
import time
user32 = ctypes.windll.user32
inputhex = raw_input("Please enter your desired key's code (HEX): ")
keycode = int(inputhex, 16)
time.sleep(1)
#VOID keybd_event(BYTE bVk, BYTE bScan, DWORD dwFlags, PTR dwExtraInfo);
user32.keybd_event(keycode,0,2,0) #is the code for KEYDOWN
time.sleep(5)
#user32.keybd_event(keycode,0,0,0) #is the code for KEYDUP[/code]

El módulo Sendkey no resuelve mi problema, ya que solo le permite enviar una sola pulsación de tecla y no un evento de mantener presionada la tecla. Sé sobre autoit, lo usé en el pasado, pero realmente quiero saber si esto es posible con Python y cómo. PD Estoy usando Python para Windows

Respuestas a la pregunta(4)

Su respuesta a la pregunta