【问题标题】:Simulate holding down a key模拟按住一个键
【发布时间】:2009-06-01 16:52:07
【问题描述】:

我正在使用:

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

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

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

它必须释放密钥。

这可能吗?

【问题讨论】:

  • 你是不是想模拟用户按住'A'键来获取aaaa...?
  • 您可以使用计时器或循环来连续调用keybd_event。或者,如果您知道要使用什么硬件,您可以将击键输入到 kb 缓冲区中。

标签: c++ winapi keypress simulate


【解决方案1】:

您可以将 keybd_event 调用替换为 SendInput。您可以在事件系统允许的范围内插入尽可能多的击键事件。该函数返回成功插入的事件数。

【讨论】:

    【解决方案2】:

    你想完成什么?打算保持按下的键应该已经在您的第一行中这样做了。

    Here's keybd_event() 的文档。也许它会帮助回答你的问题。 (也许您需要 GetKeyboardState() 方法?)

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

    【讨论】:

    • 嗯,好的。很希望我能做到这一点,这将是一个循环/计时器。但我想这会成功。
    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 2010-10-21
    • 2016-02-20
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多