2011-06-17 2 views
0

Je souhaite simuler des clics au clavier et taper certains messages en cyrillique. je sais comment simuler l'événement du clavier:Comment envoyer un événement de message clavier avec un caractère cyrillique

SendKeyboardMessage(handle, WM_KEYDOWN, Convert.ToInt32(key), 0); 
SendKeyboardMessage(handle, WM_KEYUP, Convert.ToInt32(key), 0); 

mais le 3ème argument est de type « Keys » et il n'y a pas d'omble chevalier cyrillique.

Alors, comment envoyer un événement clavier avec des caractères cyrilliques?

Il est important d'envoyer le message à l'application elle-même pas globale

Répondre

1

Peut-être essayer et changer la disposition du clavier premier à cyrillique, puis simuler les événements du clavier.

J'ai trouvé this code project qui montre comment vous pouvez changer la disposition.

espoir qui aide

0

La même fonction devrait fonctionner pour cyrillique aussi bien. Comprenez-vous la différence entre KEY et CHARACTER?

Les touches sont sur votre clavier, tandis que les caractères sont ce qui est dessiné à l'écran. WM_KEYDOWN et WM_KEYUP n'envoient pas de caractères, ils envoient des clés. Keys Le type de données couvre le clavier en tant que matériel - vous avez toujours les mêmes 102 touches, peu importe ce qu'elles signifient dans votre langue locale. Ces clés sont converties en caractères plus tard, en utilisant la page de code active. C'est pourquoi vous pouvez utiliser la même fonction pour Cyrilic, il suffit de passer la page de codes active à Cyrilic et d'envoyer les bons noms de clés comme si elles provenaient d'un clavier u.s.français.

Questions connexes