Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghantar Berbilang Aksara dengan SendInput()?

Bagaimana untuk Menghantar Berbilang Aksara dengan SendInput()?

Susan Sarandon
Susan Sarandonasal
2024-10-30 02:35:28687semak imbas

How to Send Multiple Characters with SendInput()?

Menghantar Berbilang Aksara dengan SendInput

Soalan:

Bagaimanakah SendInput boleh digunakan untuk menghantar lebih daripada satu aksara?

Jawapan:

SendInput() menerima berbilang struktur INPUT. Setiap struktur INPUT mewakili satu peristiwa utama (tekan atau lepas). Untuk menghantar berbilang aksara, cipta tatasusunan struktur INPUT dan nyatakan kod kunci maya atau titik kod Unikod yang betul.

Kod Betul untuk Menghantar Dua Aksara:

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

Nota Penting:

  • Kekunci Maya: Gunakan KEYEVENTF_UNICODE untuk menggunakan titik kod Unikod dan bukannya kekunci maya.
  • Titik Kod UNICODE: Pasangan pengganti dikehendaki menghantar aksara di luar Satah Berbilang Bahasa Asas (BMP).
  • Bilangan Struktur INPUT: Parameter pertama SendInput() menentukan bilangan struktur INPUT.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Berbilang Aksara dengan SendInput()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn