为模拟输入设备编写Windows驱动程序

时间:2009-09-08 14:11:03

标签: windows input device-driver

我的应用程序需要表现为虚拟操纵杆(想象用鼠标拖动方块并将其转换为模拟操纵杆的输出)并通过网络将一些击键发送到驱动程序将接收该输入的另一台计算机。 / p>

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

也许没有编写驱动程序就可以完成。我尝试使用SendKey()发送键击,这似乎有效,但不知道如何模拟模拟操纵杆。

我已经下载了VDK,并且已经阅读了我在该主题上可以找到的所有内容,但有很多事情我仍然不明白。你能指点我正确的方向吗?

  1. 我应该构建内核模式还是用户模式驱动程序?
  2. 我的驱动程序可以充当网络上应用程序的服务器吗?
  3. 您是否知道可以帮助我的好教程/书籍/样本。
  4. 由于

2 个答案:

答案 0 :(得分:5)

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

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

如果您能够从等式中移除物理操纵杆,也许您可​​以编写模拟操纵杆用于插入的任何地方(操纵杆/串行端口?)的输入的软件,或者完全模拟它(相当简单)司机可以这样做)。如果操纵杆使用标准通信接口(如RS232),您可以在不编写驱动程序的情况下完全执行此操作,因为存在可以处理所有这些的库,您可以设置虚拟COM端口,这些端口将与您尝试与之通信的任何内容无法区分。

目前您可以购买的关于驱动程序开发的最佳书籍是Developing Drivers with the Windows Driver Foundation

Rootkits: Subverting the Windows Kernel是另一本很棒的书,但没有涵盖很多较新的WDF内容。它有更多的安全焦点,但有一些关于设备驱动程序的精彩章节,有完全的勺子示例,以一种非常容易理解的方式将其分解。

答案 1 :(得分:-1)

如果仅通过网络,可能只需简单的套接字编程即可。