编写一个模拟input设备的Windows驱动程序

我的应用程序需要performance为一个虚拟游戏杆(想象用鼠标拖动一个方块并将其转换为模拟游戏杆的输出),然后通过networking将一些击键发送到驱动程序将接收该input的另一台计算机。

我只需要支持XP,Vista和Win7。

也许这可以在不写驱动程序的情况下完成。 我尝试用SendKey()发送键击,似乎工作,但不知道如何模拟模拟操纵杆。

我已经下载了VDK,并且正在阅读关于这个主题的所有内容,但是还有很多东西我还是不明白。 你能指点我正确的方向吗?

  1. 我应该build立一个内核模式还是用户模式的驱动程序?
  2. 我的驱动程序可以作为networking上应用程序的服务器吗?
  3. 你知道很好的教程/书籍/样本,可以帮助我这个。

谢谢

首先,您的计算机(或网络)与正在控制的操纵杆设备之间必须有某种接口。

如果涉及到制作自定义硬件来控制模拟游戏杆(比如它控制气动或液压等等,而不仅仅是一个PC游戏操纵杆类型的东西),那么是的,你几乎肯定会需要一个驱动程序来允许网络应用程序移动机器人手臂,或其他)将移动该操纵杆。

如果你能够从等式中删除物理游戏杆,也许你可以编写仿真插入游戏杆(游戏杆/串行端口)的输入的软件,或者完全模拟它(一个相当简单的驱动程序可以做的这个)。 如果游戏杆使用标准的通信接口(如RS232),则可以完全不用写驱动程序,因为存在可以处理所有这些的库,而且您可以设置虚拟COM端口,无论您尝试与哪个虚拟COM端口通信都是无法区分的。

目前您可以在驱动程序开发上购买的最好的书是使用Windows驱动程序基础开发驱动程序

Rootkits:颠覆Windows coreel是另外一本很棒的书,但并没有涵盖很多较新的WDF。 它有更多的安全重点,但有几个关于设备驱动程序的真棒章节,有完整的示例,以真正可访问的方式将其分解。

如果只是通过网络,大概简单的套接字编程应该足够了。