Visual Basic键向下和键盘

时间:2014-11-26 22:44:46

标签: vb.net

好的,所以我写了一个程序设置为10毫秒的程序,不断检查按钮的状态。当按钮关闭时,我希望它按下我设置的键盘按键,然后释放按钮,我想要设置按键。

Iv尝试了Sendkeys.send,但由于程序是在计时器上,它只会继续发送垃圾邮件。我也一直试图使用keybd_event(87, 0, 2, 0)。有了这个,它按下W键,但只有一次,然后出现这个错误......

检测到

PInvokeStackImbalance

PInvoke函数'Mercury!Mercury.Player1::keybd_event'的调用使堆栈失衡。这可能是因为托管PInvoke签名与非托管目标签名不匹配。检查PInvoke签名的调用约定和参数是否与目标非托管签名匹配。

我不知道这意味着什么,但如果知道它有用,有人可以解释一下吗?谢谢 那么是否有可能在计时器内按下一个键?

提前感谢任何可以提供帮助的人。

1 个答案:

答案 0 :(得分:0)

根据回复发表评论作为回答:

  OMG,谢谢你!将Long改为Integer正是我所做的   通缉。你不知道多长时间以来一直在寻找这个答案   哈哈。谢谢!

当您的API声明中包含错误的数据类型时,通常会发生PInvokeStackImbalance。很可能你选择了一个适用于VB6的API而没有意识到它。通常,您需要将Long更改为Integer。向我们展示您的API声明,我们可以帮助您更正。