原始输入API Windows 7/Vista OS中的使用范围.它可以适用于整个环境还是仅适用于聚焦窗口?

Joh*_*ohn 5 .net c# vb.net api sdk

超越业余开发人员,外包我的一些工作并做一部分工作.我一直在研究字典/词库/拼写检查和建议应用程序,我试图在Windows环境中的所有应用程序上工作.

我已经使用挂钩获取关键的stokes并显示输出,因为该人正在键入定义和拼写建议.这并没有实现我想要的一切.适用于拼写检查和建议,但单击已存在的单词或触摸屏界面触摸单词不起作用.

我正在阅读MSDN上的Raw Input API,并认为这样可行,但我聘请的开发人员告诉我,RAW输入的范围仅在具有焦点的窗口上,因此不能进行低级挂钩.我正在考虑付出努力,但在努力之前需要第二个第四个第四个视角.

MSDN参考:http://msdn.microsoft.com/en-us/library/ff468896%28v=VS.85%29.aspx

希望所有的背景信息都不会带走这个问题.欣赏您的洞察力.

问候,

约翰

Tob*_*gel 2

是的,他是对的。RawInput 消息 (WM_INPUT) 仅为聚焦窗口生成。也许你可以通过某种方式解决这个问题,但这不是主要问题。

正如其名称所示,RawInput 确实为您提供了原始鼠标数据。该数据只是相对的鼠标移动或鼠标增量数据。当鼠标到达屏幕边缘时,这些值仍然会输入到消息中,最重要的是对于您的情况:它不会为您提供指针弹道(有关指针弹道的一些说明,请参阅这篇文章:http://msdn. microsoft.com/en-us/windows/hardware/gg463319)。这使得确定实际光标位置几乎不可能。

您现在可以尝试模拟所有这些行为,并模拟光标位置,但指针弹道在不同版本的窗口上并不相同。XP 的行为与 Vista 不同,我认为他们在 Windows 7 中再次更改了公式。

API 表明,有些设备可以为您提供位置而不是相对数据,但我从未遇到过表现出这种行为的设备,甚至没有触摸屏(尽管这可能与驱动程序相关),而且它肯定不会不适用于标准鼠标。