键盘筛选器驱动程序。扫码 -> VK_???(特定于原始设备制造商)



前言(想象。所以有人不会问‘你想做什么?’(:我有一个Win32 C++应用程序。此应用程序希望知道用户何时希望通过Ctrl+Esc打开开始菜单当然,Ctrl+Esc是从操作系统中触发的,所以应用程序永远看不到它

我看过Windows虚拟密钥。我看到有很多特定于OEM的VK(0x92-0x96,0xE0,0xE9-0xF5,..(

所以我的想法是:

键盘筛选器驱动程序。当我的应用程序有焦点时,它会告诉键盘过滤器驱动程序。当我的驱动程序看到Ctrl键按下,并且Esc键按下时(我的应用程序有焦点(:--吞下Esc并将其替换为扫描代码,该代码将产生VK_0x92(OEM特定(。

由于我吞下了Esc,操作系统将永远看不到Ctr+Esc-

然后,我的应用程序将看到VK_0x92,并知道用户想要打开开始菜单并执行一些操作。

我的问题是如何在驱动程序(KEYBOARD_input_DATA(中"搅乱"输入以获得发言权VK_0x92是否出现在我的应用程序中?

提前感谢您的指点。

这一切都与键盘布局有关。我需要做的是不支持微软键盘布局创建器(MKLC(。请参见:键盘布局示例。

我发现这些样品很旧,很难通读。显然,美国和德国的键盘样本并不是最新的。

我编写了一个程序,通过指向特定的布局(例如KBDUS.dll(为键盘布局创建Visual Studio项目。我生成源代码.vxcproj,…然后我进行修改并构建它。

安装布局完全是另一回事。我已经在几个地方要求微软发布包含在MKLC生成的.MSI中的CustomAction Dll的源代码,但没有成功。

最新更新