Bah, suffit de pas s'y prendre comme un manche…
La gestion de l'entrée clavier/souris sous Windows est certes un peu bordélique… (Disons que c'est un mélange de trucs bien pensés avec d'autres trucs complètement débiles) Mais on peut s'en démerder la plupart du temps.
Les applications ne peuvent recevoir les entrées clavier que de deux manières: par les messages, ou avec des fonctions comme GetKeyState(). Et les implémentations par défaut n'utilisent pas la deuxième possibilité (Ou alors peut-être parfois en complément de l'autre) donc…
(PS: Shift + A c'est [Shift Down, A Down, A Up, Shift Up] ou [Shift Down, A Down, Shift Up, A Up]… Ou aussi juste 'A'. Ça fait plusieurs trucs à essayer

)