首页 > 后端开发 > C++ > 正文

如何使用 SendInput() 发送多个字符?

Susan Sarandon
发布: 2024-10-30 02:35:28
原创
686 人浏览过

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学习者快速成长!