当前位置:  开发笔记 > 编程语言 > 正文

多个键盘和低级挂钩

如何解决《多个键盘和低级挂钩》经验,为你挑选了1个好方法。

我有一个系统,我有多个键盘,真的需要知道键击来自哪个键盘.解释设置:

    我有一个普通的PC和USB键盘

    我有一个带有一些硬键的外部VGA屏幕

    硬键映射为标准USB键盘,发送有限数量的键码(F1,F2,Return,+和 - )

我有一个低级钩子(在C#中,但实际上调用了Win32功能),即使我的应用程序没有聚焦,它也能够处理输入.

问题是当使用普通键盘时,应用程序拾取的一些映射键码在外部屏幕上被驱动.外部屏幕发送并用于确认的其中一个按键是VK_RETURN.除非我能够识别"设备"并对其进行过滤,否则用户可能正在执行操作并在甚至不看的屏幕上确认它们.

我怎么知道哪个键盘负责按键?



1> Roel..:

是的我纠正了,我的坏,每天都在学习新东西.

这是我试图弥补它:):

使用:: RegisterRawInputDevices()注册要用于原始输入的设备(两个键盘).

您可以从GetRawInputDeviceList()获取这些设备

注册设备后,您将开始获取WM_INPUT消息.

WM_INPUT消息的lParam包含一个RAWKEYBOARD结构,可用于确定输入来自的键盘,以及虚拟键码和消息类型(WM_KEYDOWN,WM_KEYUP,...)

因此,您可以设置最后一条消息来自哪里的标志,然后将其分发给常规键盘输入处理程序.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有