I know I'm stepping into something complicated here, but it's better I get help now before I mess things up.
I'm looking into writing an application to act as a joypad on a touch screen tablet (running Windows 7, written in C# .Net). Previously I thought about it just emulating keyboard input, but I want to take it up a level, directly emulating a physical, hardware game pad. Where do I begin doing this?
You'll need a device driver for this.
A hardware joypad is one type of human input device (HID). Fortunately, the UMDF (user-mode driver framework) is a library that supports HID devices (except keyboards and mice). UMDF exposes a COM-like API, so in theory it should be possible to write one in C#.
However, consider the following quote by Doron Holan on 2008-10-06:
i do not think any one has really tried a HID UMDF filter before, so you will be blazing new ground
I'm not aware of any sample UMDF HID driver, but this blog post may be a good starting point.
In all honesty, as much as I dislike hijaking and injection, it would probably be easier than a driver.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With