我需要以编程方式将通过并行端口(LPT)传递的数据嗅探到Windows XP中的打印机。
这是我过去3-4天尝试过的事情:
首先,我尝试使用Windows CreateFile(),WaitCommEvent()和ReadFile()函数读取数据。但它们似乎阻止了端口,因此端口访问被拒绝给其他应用程序。
其次,我使用com0com创建虚拟COM端口以获取打印机数据,然后将其发送到LPT。这需要我让源用户空间应用程序首先将数据发送到COM端口,然后我编写代码以通过LPT端口将数据传输到打印机。所以,我基本上是通过COM端口重定向打印流,而不是通过LPT端口嗅探它。因此,它需要更改我需要捕获的打印数据的应用程序中的设置。因此,这更像是一种黑客攻击,而不是我需要的东西。
最后,我使用了this question中提到的PortMon和PrintFil。它们工作正常,但我需要在我的应用程序中包含PortMon的嗅探功能。
那么,是否有任何开源库或代码示例可用于嗅探类似于portmon或printfil的并行端口数据?