我的应用程序需要表现为虚拟操纵杆(想象一下用鼠标拖动方块并将其转换为模拟操纵杆的输出)并通过网络将一些击键发送到驱动程序将接收该输入的另一台计算机.
我只需要支持XP,Vista和Win7.
也许可以在不编写驱动程序的情况下完成.我尝试使用SendKey()发送键击,这似乎有效,但不知道如何模拟模拟操纵杆.
我已经下载了VDK,并且已经阅读了我在这个主题上可以找到的所有内容,但是有很多东西我还是不明白.你能指点我正确的方向吗?
我应该构建内核模式还是用户模式驱动程序?
我的驱动程序可以充当网络上应用程序的服务器吗?
你知道很好的教程/书籍/样本可以帮助我解决这个问题.
谢谢
首先,您必须在计算机(或网络)与受控制的操纵杆设备之间建立某种接口.
如果它涉及制作定制硬件来控制模拟操纵杆(就像它控制气动或液压或其他东西,而不仅仅是PC游戏操纵杆类型的东西),那么是的,你几乎肯定需要一个驱动程序来允许网络应用程序移动(机器人手臂,或其他什么)将移动那个操纵杆.
如果您能够从等式中移除物理操纵杆,也许您可以编写模拟操纵杆用于插入的任何地方的输入的软件(操纵杆/串行端口?),或者完全模拟它(一个相当简单的驱动程序可以做这个).如果操纵杆使用标准通信接口(如RS232),您可以在不编写驱动程序的情况下完全完成,因为存在可以处理所有这些的库,您可以设置虚拟COM端口,这些端口将与您尝试与之通信的任何内容无法区分.
目前,您可以在驱动程序开发上购买的最佳书籍是使用Windows Driver Foundation开发驱动程序
Rootkit:颠覆Windows内核是另一本很棒的书,但并没有涵盖很多新的WDF内容.它有更多的安全焦点,但有一些关于设备驱动程序的精彩章节,有完全的勺子示例,以一种非常容易理解的方式分解它.