Preface (Imaginary. So someone does not ask 'What are you trying to do?):
I have a Win32 C++ application.
This application wants to know when the user wants to open the start menu via Ctrl+Esc
Of course, Ctrl+Esc is fired from the operating system so the application never see’s it.
I have looked at Windows Virtual Keys.
I see that there are plenty of OEM specific VK’s
(0x92-0x96,0xE0,0xE9-0xF5,…)
So my thought was:
- Keyboard Filter Driver.
- When my application has the focus it tells the Keyboard Filter Driver.
- When my driver sees the Ctrl is down and an Esc down occurs (And my application has focus):
– Swallow the Esc and replace it with a scan code that will produce say a VK_0x92 (OEM Specific). - Since I have swallowed the Esc the operating system will never see Ctr+Esc
- My application will then see the VK_0x92 and know the user wants to open the start menu and perform some action.
My question is how do I ‘muck’ the input within my driver (KEYBOARD_INPUT_DATA) in order for a say
VK_0x92 to appear within my application?