PostMessage会干扰用户输入

时间:2015-02-05 18:38:58

标签: autoit jna user32

我正在尝试使用jna将密钥笔划发送到java中的外部应用程序。

它发送VK_DOWN键,该应用程序也有一个ctrl + down的快捷方式,这使得一些非常不同的东西。我的应用程序发送约15个向下键,中间为1秒,如果用户在处理不同窗口时碰巧点击 CTRL ,则会中断应用程序(将其视为 ctrl < / KBD> + 向下)。

我通过Spy ++检查了键盘消息,将其与AutoIt进行了比较,它们是完全相同的消息。

ControlSend("window_title", "", "", "{DOWN}")

这个AutoIt代码工作正常,即使我在窗口处于活动或非活动状态时单击ctrl,它也不会干扰向下键。 我的代码另一方面:

    User32.INSTANCE.PostMessage(handle, WM_KEYDOWN, wparam, lparamDown);
    User32.INSTANCE.PostMessage(handle, WM_KEYUP, wparam, lparamUp);

具有完全相同的消息,但它不起作用。

我尝试在发送密钥之前发送控制权,但无济于事。

间谍++输出:

<14335> 00011456 P WM_KEYDOWN nVirtKey:VK_DOWN cRepeat:1 ScanCode:50 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
<14336> 00011456 P WM_KEYUP nVirtKey:VK_DOWN cRepeat:1 ScanCode:50 fExtended:1 fAltDown:0 fRepeat:1 fUp:1

我的ctrl点击甚至不在目标应用程序上,所以为什么它会这样对待?我应该使用挂钩吗?

0 个答案:

没有答案