gpt4 book ai didi

c++ - SendInput 不适用于保持键 C++

转载 作者:搜寻专家 更新时间:2023-10-31 01:53:53 24 4
gpt4 key购买 nike

我有一段使用 SendInput 发送按键的代码,但当我想长按一个键时它不起作用(例如,长按“a”会在记事本中返回“aaaaaaaaa”)。

现在我已经查看了整个谷歌,我能看到解决这个问题的唯一方法是如果我想要长时间保持,请继续发送输入。我不想这样做,因为这只会模拟一遍又一遍地按下“a”。

keyboard.wVk = 0;
keyboard.wScan = MapVirtualKey(key, 0);

keyboard.dwFlags = KEYEVENTF_SCANCODE;

if (index_vector_no)
pressed[index_vector_no] = true;

keyboard.dwExtraInfo = 0;

input.type = INPUT_KEYBOARD;
input.ki = keyboard;

SendInput(1, &input, sizeof (input));

所以我想回答以下问题:

A) 我认为没有办法使用 SendInput 解决这个问题,为什么长时间保持不起作用?

B) 成功发送按键按下和按键弹起信号的替代方法是什么?最好将 key 发送到 Windows,而不仅仅是特定的应用程序。

C) 是否有我可以使用的良好的轻量级 C++ 库来处理全局键盘和鼠标模拟?

提前致谢! =)

编辑:查看此帖子以了解我的问题的更多详细信息:http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_20833788.html

最佳答案

重复击键是键盘 Controller 的一项功能,而不是 Windows 或 SendInput 的一项功能。您当然可以使用计时器模拟它,重复调用 SendInput()。

关于c++ - SendInput 不适用于保持键 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10466062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com