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

Comment envoyer plusieurs caractères avec SendInput() ?

Susan Sarandon
Libérer: 2024-10-30 02:35:28
original
788 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal