11

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

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

也许不用写驱动就可以做到。我尝试使用 SendKey() 发送击键,这似乎可行,但不知道如何模拟模拟操纵杆。

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

  1. 我应该构建内核模式还是用户模式驱动程序?
  2. 我的驱动程序可以充当网络上应用程序的服务器吗?
  3. 你知道可以帮助我的好的教程/书籍/示例吗?

谢谢

4

2 回答 2

6

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

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

如果您能够从等式中删除物理操纵杆,也许您可​​以编写软件来模拟操纵杆用于插入的任何位置的输入(操纵杆/串行端口?),或者完全模拟它(一个相当简单的驱动程序可以做到这个)。如果操纵杆使用标准通信接口(如 RS232),您可以完全不编写驱动程序来完成它,因为存在可以处理所有这些的库,并且您可以设置虚拟 COM 端口,这些端口与您尝试与之通信的任何东西都无法区分。

目前您可以购买的关于驱动程序开发的最佳书籍是使用 Windows 驱动程序基金会开发驱动程序

Rootkits:Subverting the Windows Kernel是另一本很棒的书,但没有涵盖很多较新的 WDF 内容。它更多地关注安全性,但有一些关于设备驱动程序的精彩章节,带有完整的示例,以一种真正易于访问的方式对其进行分解。

于 2009-09-16T14:59:46.980 回答
0

If it is only over the network, probably simple socket programming should be enough.

于 2009-09-10T04:54:49.450 回答