我有一个Wacom的竹垫,并希望做一些疯狂的事情与它涉及抓住了触摸板。 观察家和消费者:触摸板可以在两种模式来抓住。 虽然观察者模式通过触摸数据到OS还,消费者“吃”独数据。 但是:消费模式需要的目标窗口为活动之一。
在这里,问题来了。 我需要另一个应用程序从触摸板的影响同时接收键盘消息,并防止鼠标。
还有我已经尝试了一些选项:
- 观察者模式“鼠标监狱”。 咩。 我可能需要鼠标,所以没有。
- 禁止在平板电脑首选项触摸,而是由垫这并不禁止触摸(因为它表明),并不仅是鼠标移动。
- 消费模式,并试图通过键盘的WndProc消息到下一个应用程序。 结果是...好没有。
我想抓的WndProc窗口上,但因为我有一个具有键盘焦点的子控件,这没有奏效。 最后我用一个自定义文本框,这也将覆盖的WndProc,并抓住WP_KEYFIRST和WP_KEYLAST,并给予他们失望之间的所有消息我认为是下一个窗口(。使用GetForegroundWindow和GetWindow(GW_NEXTWINDOW))。 我都试过SendMessage函数和PostMessage的,但快速测试用记事本,每次失败。
所以我的问题是:如何可以传下的WndProc键盘消息和禁用触摸板进行鼠标移动?
PS:在某些时候,我想要的结果(观察,但没有鼠标操纵),但是这是一个巧合,重新插入平板电脑固定它。 我不能,虽然重现。
编辑:
与WINAPI和键盘passtrough这种做法进一步摆弄周围后似乎是不可能的(或非常非常难......)还有就是在这里获得所有窗口的方法[ 1 ],你也可以从这个片段Z顺序。 但是:不是每一个窗口处理此窗口的键盘输入。 听起来很愚蠢,是愚蠢的(在我的眼睛)。 窗户似乎不通过键盘事件下线槽窗口为目标的控制,而是直接控制。 但是,只有在某些情况下。 所以我放弃了这个具体做法。 另一种方法是,使之成为我所需要的程序(这是可能在我的情况),明确地上班或上面提到的其他方式。 至于想不使用这样的黑客,我进一步开放有关如何禁用鼠标移动理念。
[1]: 像交替-标签确实枚举窗口