Pay*_*aya 16 .net wpf hook input mouse-hook
我全局(系统范围)使用SetWindowsHookEx和过滤某些鼠标点击WH_MOUSE_LL.问题是它不适用于WPF应用程序(所有WPF应用程序都检测鼠标点击,无论我是否指示系统忽略这些点击).我已经在这里问了一个类似的问题,但我假设WPF使用DirectInput而不是标准的Windows消息来检测输入.但是呢?
我已经能够找到一个能够使用鼠标点击进入WPF应用程序SendMessage的代码.如果这是可能的,那么我认为它意味着WPF不DirectInput用于鼠标输入.但是,为什么不能阻止WPF应用程序检测鼠标点击SetWindowsHookEx?
虽然这个问题主要是关于鼠标输入,但我也想知道它对于键盘输入是如何工作的.
我已经快速创建了以下解决方案来重现奇怪的WPF行为.它由3个项目组成:
HookTester
StartUp项目,自动启动其他2个项目,所以你应该主要关注这一个.启动时安装鼠标挂钩,并在关闭表单时卸载挂钩.
WinFormsTest
包含一个带有默认上下文菜单的TextBox,您可以在其中测试鼠标右键.当HookTester运行时,您不能使用鼠标右键调用上下文菜单.
WpfTest也
包含一个TextBox,带有自定义上下文菜单(虽然我也可以使用默认菜单),所以这又是测试鼠标右键的地方.只要HookTester正在运行,您就无法调用上下文菜单(使用鼠标右键),但出于某种原因,菜单仍将显示(Why ???).
警告:当您运行解决方案时,HookTester项目将启动并立即安装挂钩以拒绝任何右键鼠标点击(系统范围内).只需关闭HookTester表单即可轻松卸载挂钩.谨慎测试.
Mar*_*nov 11
HwndMouseInputProvider处理消息,如WM_MOUSEMOVE,WM_LBUTTONDOWN等.所以我认为没有用于处理鼠标和键盘输入的DirectInput.
| 归档时间: |
|
| 查看次数: |
4086 次 |
| 最近记录: |