Maison >développement back-end >C++ >Comment envoyer plusieurs caractères avec SendInput() ?

Comment envoyer plusieurs caractères avec SendInput() ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 02:35:28771parcourir

How to Send Multiple Characters with SendInput()?

Envoi de plusieurs caractères avec SendInput

Question :

Comment SendInput peut-il être utilisé pour envoyer plus d'un caractère ?

Réponse :

SendInput() accepte plusieurs structures INPUT. Chaque structure INPUT représente un seul événement clé (appuyer ou relâcher). Pour envoyer plusieurs caractères, créez un tableau de structures INPUT et spécifiez les codes de clé virtuelle ou les points de code Unicode corrects.

Code correct pour l'envoi de deux caractères :

<code class="c++">#include <array>

int main() {
    array<INPUT, 4> in;
    
    // KEYEVENTF_UNICODE specifies using Unicode codepoints
    in[0].type = INPUT_KEYBOARD;
    in[0].ki.dwFlags = KEYEVENTF_UNICODE;
    in[0].ki.wScan = 0;
    in[0].ki.time = 0;
    in[0].ki.dwExtraInfo = 0;
    in[0].ki.wVk = VkKeyScanW('S');  // 'S' character

    in[1].type = INPUT_KEYBOARD;
    in[1].ki.dwFlags = KEYEVENTF_UNICODE | KEYEVENTF_KEYUP;
    in[1].ki.wScan = 0;
    in[1].ki.time = 0;
    in[1].ki.dwExtraInfo = 0;
    in[1].ki.wVk = VkKeyScanW('S');  // 'S' character

    in[2].type = INPUT_KEYBOARD;
    in[2].ki.dwFlags = KEYEVENTF_UNICODE;
    in[2].ki.wScan = 0;
    in[2].ki.time = 0;
    in[2].ki.dwExtraInfo = 0;
    in[2].ki.wVk = VkKeyScanW('T');  // 'T' character

    in[3].type = INPUT_KEYBOARD;
    in[3].ki.dwFlags = KEYEVENTF_UNICODE | KEYEVENTF_KEYUP;
    in[3].ki.wScan = 0;
    in[3].ki.time = 0;
    in[3].ki.dwExtraInfo = 0;
    in[3].ki.wVk = VkKeyScanW('T');  // 'T' character

    SendInput(in.size(), &in[0], sizeof(INPUT));

    return 0;
}</code>

Remarque importante :

  • Clés virtuelles : Utilisez KEYEVENTF_UNICODE pour utiliser des points de code Unicode au lieu de clés virtuelles.
  • Points de code UNICODE : Des paires de substitution sont nécessaires pour envoyer des caractères en dehors du plan multilingue de base (BMP).
  • Nombre de structures INPUT : Le premier paramètre de SendInput() spécifie le nombre de structures INPUT.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn