模拟按住某个键

发布于 07-23 11:08 字数 245 浏览 8 评论 0原文

我使用:

keybd_event(0x41, 0, 0, 0);

0x41 是一个“a”。 但这只是在屏幕上打印一个“a”。 我需要它来按住键。 当我打电话时

keybd_event(0x41, 0, KEYEVENTF_KEYUP, 0);

它必须释放钥匙。

那可能吗?

Im using:

keybd_event(0x41, 0, 0, 0);

0x41 is a 'a'. But that just prints one 'a' to the screen. I need it to hold down the key. And when i call

keybd_event(0x41, 0, KEYEVENTF_KEYUP, 0);

it must release the key.

Is that possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

始终不够爱げ你2024-07-30 11:08:30

您可以将 keybd_event 调用替换为 发送输入。 您可以插入事件系统允许的任意数量的击键事件。 该函数返回成功插入的事件数。

You could replace the keybd_event call with SendInput. You can insert as many keystroke events as the event system will allow. The function returns the number of events successfully inserted.

暮色兮凉城2024-07-30 11:08:30

你想达到什么目的? 想要保持按下状态的键应该已经在第一行中按下了。

这里是 keybd_event() 的文档。 也许这将有助于回答你的问题。 (也许您需要 GetKeyboardState() 方法?)

如果您只是尝试重复敲击某个键,则循环第一次调用比尝试让系统自动重复更容易。 您可以在系统信息 API 函数中找到要使用的适当延迟。

What are you trying to accomplish? The keys that are intended to remain pressed should already do so with your first line.

Here's the documentation for keybd_event(). Maybe it will help answer your question. (And maybe you needed the GetKeyboardState() method?)

If you're simply trying to repeatedly strike a key, it would be easier to loop around the first call than to try to get the system to auto-repeat. You can find the proper delay to use in the system information API functions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文