GetKeyState 功能将不能使用 AttachThreadInput 函数附加输入处理机制为在 Windows 7 中或在 Windows Server 2008 R2 中的线程

症状

请考虑以下情形︰ 在这种情况下, GetKeyState函数返回键或鼠标按钮状态,不是关闭状态。然而,键或鼠标按钮应该处于关闭状态直到相应的键或鼠标按钮释放消息 (如 WM_KEYUP、 WMSYSKEYUP、 WM_LBUTTONUP) 进行处理。

备注:

原因

由于 Windows 不复制"症状"一节中描述的方案中的KeyState属性的情况下创建新的输入的队列,将出现此问题。因此,新的输入队列的KeyState属性具有 null 值。在此情况下,每个键和鼠标按钮处于松开状态,或在不切换状态。

解决方案

修补程序信息

可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。此修复程序仅适用于遇到本文中描述的问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。如果未显示此部分,请与 Microsoft 客户服务和支持部门联系以获取此修复程序。

注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰

注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。

系统必备组件

若要应用此修补程序,您必须运行 Windows 7 Service Pack 1 (SP1) 或 Windows Server 2008 R2 Service Pack 1 (SP1)。

有关如何获取 Windows 7 或 Windows Server 2008 R2 Service Pack 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

Service Pack 1 为 Windows 7 和 Windows Server 2008 R2 的信息

注册表信息

若要使用此程序包中的修复程序,您不必对注册表进行任何更改。

重启要求

应用此修补程序后,必须重新启动计算机。

修补程序替换信息

此修补程序不替代以前发布的修补程序。

此修复程序的全球版本将安装具有下表所列属性的文件。这些文件的日期和时间以协调世界时 (UTC) 列出。您的本地计算机上这些文件的日期和时间以您的本地时间加上当前夏令时 (DST) 偏差显示。此外,当您对文件执行某些操作时,日期和时间可能会更改。

Windows 7 和 Windows Server 2008 R2 文件信息备注

  • 通过检查下表中显示的文件版本号,可以识别应用于特定产品、 里程碑 (RTM、 SPn) 和服务分支 (LDR、 GDR) 的文件:

  • 为每个环境安装的 MANIFEST 文件 (.manifest) 和 MUM 文件 (.mum) 在“Windows Server 2008 R2 和 Windows 7 的其他文件信息”部分单独列出。MUM 和 MANIFEST 文件以及关联的安全目录 (.cat) 文件对维护更新组件的状态极其重要。对其属性没有列出的安全目录文件已签署 Microsoft 数字签名。

状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

详细信息

AttachThreadInput函数的详细信息,请访问下面的 Microsoft 网站︰

TranslateMessage函数的详细信息,请访问下面的 Microsoft 网站︰

GetKeyState函数的详细信息,请访问下面的 Microsoft 网站︰

有关附属窗口的详细信息,请访问下面的 Microsoft 网站︰

有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

用于描述 Microsoft 软件更新的标准术语的说明

Windows 7 和 Windows Server 2008 R2 的附加文件信息

所有受支持的基于 x86 的 Windows 7 版本的其他文件

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×