C#如何向USB打印机发送命令

不远1210 2020-07-28 04:18:17
最近有这么一个需求:调查能否抓取USB打印机和电脑通信的数据,模拟驱动发送的数据来后台调用一些功能。

抓取部分数据如下:





能否有大佬指导下在C#中如何向USB口打印机发送数据?
或者提供一个方向!

多谢。
...全文
5337 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
不远1210 2020-07-30
  • 打赏
  • 举报
回复
引用 9 楼 gouyanfen 的回复:
[quote=引用 8 楼 不远1210 的回复:][quote=引用 5 楼 gouyanfen的回复:]hook DeviceIOControl获取他的通信数据,再写调用,模拟调用不够稳定,界面上也不够友好。

感谢!

数据抓取到的,不过被分包了,不知道是哪儿拼错了,还是编码、理解或其他地方出了问题,一直无法被打印机解析。[/quote]
都是二进制的按他的组合就可以了,注意数数据重组时候注意字节对齐,自己写的应用也hook一下,对比一下就知道问题了,只要设备句柄打开正常,数据对齐没有问题,照猫画虎应该不会有问题。[/quote]

多谢指正,我再试试!
不远1210 2020-07-30
  • 打赏
  • 举报
回复
嗯,多谢指正,可能是数据组合的时候哪儿不对,我再试试。
不远1210 2020-07-30
  • 打赏
  • 举报
回复
成功了,之前不够仔细,看漏了一条。
Mr Dang 2020-07-29
  • 打赏
  • 举报
回复
spy++ 去模拟人点击呢,通讯那个你去模拟我估计很难哦。
gouyanfen 2020-07-29
  • 打赏
  • 举报
回复
引用 8 楼 不远1210 的回复:
[quote=引用 5 楼 gouyanfen的回复:]hook DeviceIOControl获取他的通信数据,再写调用,模拟调用不够稳定,界面上也不够友好。
感谢! 数据抓取到的,不过被分包了,不知道是哪儿拼错了,还是编码、理解或其他地方出了问题,一直无法被打印机解析。[/quote] 都是二进制的按他的组合就可以了,注意数数据重组时候注意字节对齐,自己写的应用也hook一下,对比一下就知道问题了,只要设备句柄打开正常,数据对齐没有问题,照猫画虎应该不会有问题。
不远1210 2020-07-29
  • 打赏
  • 举报
回复
引用 5 楼 gouyanfen的回复:
hook DeviceIOControl获取他的通信数据,再写调用,模拟调用不够稳定,界面上也不够友好。
感谢! 数据抓取到的,不过被分包了,不知道是哪儿拼错了,还是编码、理解或其他地方出了问题,一直无法被打印机解析。
不远1210 2020-07-29
  • 打赏
  • 举报
回复
引用 6 楼 不远1210的回复:
问题已解决,以截取printer spool数据并解析的方式来达到目的。
过段时间结贴,如果谁有好的方案欢迎踢出。
不远1210 2020-07-29
  • 打赏
  • 举报
回复
问题已解决,以截取printer spool数据并解析的方式来达到目的。
gouyanfen 2020-07-29
  • 打赏
  • 举报
回复
hook DeviceIOControl获取他的通信数据,再写调用,模拟调用不够稳定,界面上也不够友好。
不远1210 2020-07-29
  • 打赏
  • 举报
回复
引用 3 楼 Bzdr的回复:
spy++ 去模拟人点击呢,通讯那个你去模拟我估计很难哦。
多谢。 你说的这个有考虑过,是最后的方案。 模拟点击的方式界面上不太友好,而且耗时较长(因为你不知道使用这个的是什么神机,需要留间隔时间)。
不远1210 2020-07-28
  • 打赏
  • 举报
回复
引用 1 楼 Bzdr 的回复:
一种是找到打印机型号和厂家去下载SDK,调用SDK实现。
一种是用水晶报表实现,安装打印机驱动,直接打印。


谢谢回复。

但是打印并不是我需要的东西,我是想调用驱动上的一些功能,比如:


这喷墨打印机中常见的清洗功能。

问厂家要SDK的事情是在同步进行的,但一般情况下是不会提供的,所以才会考虑通过抓包和模拟数据的方式来实现部分功能。
Mr Dang 2020-07-28
  • 打赏
  • 举报
回复
一种是找到打印机型号和厂家去下载SDK,调用SDK实现。 一种是用水晶报表实现,安装打印机驱动,直接打印。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧