将软件应用程序注册为硬件游戏手柄?

3

我知道我正在涉足一些复杂的东西,但在我把事情搞砸之前最好还是现在寻求帮助。

我正在考虑编写一个应用程序,在触摸屏平板电脑上充当手柄(运行Windows 7,使用C# .Net编写)。以前我考虑过只模拟键盘输入,但我想把它提升到一个更高的水平,直接模拟物理硬件游戏手柄。我应该从哪里开始做这个?


2
暗示:您需要编写驱动程序。这不会很简单。 - Kieren Johnstone
不确定您是否可以使用.NET和C#编写设备驱动程序或虚拟驱动程序,请查看Windows DDK文档。 - Davide Piras
该死...我本想避免使用驱动程序,希望从XNA中劫持一两个DLL。 - Corey Ogburn
1个回答

3
您需要一个设备驱动程序。
硬件手柄是一种人类输入设备(HID)之一。幸运的是,UMDF(用户模式驱动程序框架)是支持HID设备的库(键盘和鼠标除外)。UMDF公开了类似于COM的API,因此理论上应该可以用C#编写它。
但是,请考虑Doron Holan在2008年10月6日发表的以下引用:
“我认为没有人真正尝试过HID UMDF过滤器,所以您将开创新的领域。”
我不知道是否有任何样本UMDF HID驱动程序,但此博客文章可能是一个很好的起点。
老实说,尽管我不喜欢劫持和注入,但这可能比驱动程序更容易。

我不确定自己是否能够使用XNA或其他框架来输出控制器状态,这可能是最简单的方法。 - Corey Ogburn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接