Heim >Backend-Entwicklung >C++ >Wie sende ich mehrere Zeichen mit SendInput()?

Wie sende ich mehrere Zeichen mit SendInput()?

Susan Sarandon
Susan SarandonOriginal
2024-10-30 02:35:28774Durchsuche

How to Send Multiple Characters with SendInput()?

Mehrere Zeichen mit SendInput senden

Frage:

Wie kann SendInput zum Senden von mehr als einem Zeichen verwendet werden?

Antwort:

SendInput() akzeptiert mehrere INPUT-Strukturen. Jede INPUT-Struktur stellt ein einzelnes Tastenereignis dar (Drücken oder Loslassen). Um mehrere Zeichen zu senden, erstellen Sie ein Array von INPUT-Strukturen und geben Sie die richtigen virtuellen Schlüsselcodes oder Unicode-Codepunkte an.

Korrekter Code zum Senden von zwei Zeichen:

<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>

Wichtiger Hinweis:

  • Virtuelle Schlüssel:Verwenden Sie KEYEVENTF_UNICODE, um Unicode-Codepunkte anstelle virtueller Schlüssel zu verwenden.
  • UNICODE-Codepunkte: Ersatzpaare sind erforderlich, um Zeichen außerhalb der Basic Multilingual Plane (BMP) zu senden.
  • Anzahl der INPUT-Strukturen: Der erste Parameter von SendInput() gibt die Anzahl der INPUT-Strukturen an.

Das obige ist der detaillierte Inhalt vonWie sende ich mehrere Zeichen mit SendInput()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn