首頁 > 後端開發 > C++ > 主體

如何使用 SendInput() 傳送多個字元?

Susan Sarandon
發布: 2024-10-30 02:35:28
原創
687 人瀏覽過

How to Send Multiple Characters with SendInput()?

使用SendInput發送多個字元

問題:

如何使用SendInput發送多個字元?

答案:

SendInput() 接受多個 INPUT 結構。每個 INPUT 結構代表一個按鍵事件(按下或釋放)。若要傳送多個字符,請建立 INPUT 結構數組並指定正確的虛擬鍵代碼或 Unicode 代碼點。

發送兩個字元的正確代碼:

<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>
登入後複製

重要提示:

  • 重要提示:
  • 虛擬鍵:使用KEYEVENTF_UNICODE 使用Unicode 代碼點而不是虛擬鍵。
  • UNICODE 代碼點: 需要代理對來傳送基本多語言平面 (BMP) 以外的字元。
INPUT 結構的數量: SendInput() 的第一個參數指定 INPUT 結構的數量。

以上是如何使用 SendInput() 傳送多個字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!