使用带C#、带或不带驱动程序或API的USB打印机

使用带C#、带或不带驱动程序或API的USB打印机,c#,api,printing,usb,driver,C#,Api,Printing,Usb,Driver,我并不完全是一个C#专家,我做了一些笨拙的事情,比如为一个音乐程序做一个钢琴卷(因此生成一个WPF画布,所有的都是数学之类的),还有一些简单的程序来完成一些常见的任务,比如动态地阐述一些数据(数学操作、GUI交互等) 我需要一个关于如何在我自己的电脑上检测USB打印机并使用它的概述。我已经在这里和谷歌上搜索过了,我发现: 以及其他类似的链接,告诉了我几乎一无所知的各种方法:( 好的,下面是我的想法(我会尽量简短): A)用于使用没有驱动程序的打印机(此定义可能不精确,但我有点困惑…

我并不完全是一个C#专家,我做了一些笨拙的事情,比如为一个音乐程序做一个钢琴卷(因此生成一个WPF画布,所有的都是数学之类的),还有一些简单的程序来完成一些常见的任务,比如动态地阐述一些数据(数学操作、GUI交互等)

我需要一个关于如何在我自己的电脑上检测USB打印机并使用它的概述。我已经在这里和谷歌上搜索过了,我发现:

以及其他类似的链接,告诉了我几乎一无所知的各种方法:(

好的,下面是我的想法(我会尽量简短):

A)用于使用没有驱动程序的打印机(此定义可能不精确,但我有点困惑…

我应该:

1) 找到一种检测usb门的方法,以及通过产品ID和供应商ID连接到usb门的设备。在Developerfusionarticle的特定案例中,作者解释了usb的一些基本知识,并告诉您使用人机界面设备来检测它。(我使用的是windows 7,我找不到任何隐藏设备,只有其他随机usb驱动器,我根本不知道如何与它们交互)

2) 在正确的消息管道上,创建数据流并将其与命令一起发送到usb打印机(或您打算引导的watever设备)

B)要使用带有驱动程序或windows API或预烘焙驱动程序的打印机:

我应该:

1) 使用[MSDN System.printing libraries][Link number 6]中找到的所有.NET类,并使用这些类中的正确方法(在使用System.printing libraries找到设备后)直接引导打印机

好的,我要说的是:

我真的不知道哪一步是正确的,这就是我想问你的:


一个关于如何做的分步指南,特别是第一个(正如我在MSDN论坛问题上看到的,第二个问题实际上是研究代码的问题)。我不想让你为我写代码(尽管你可以,如果你愿意的话)。我只是想问一个一般性的指导原则,在这个指导原则上,要达到最终的结果,应该采取哪些正确的步骤。发布链接,任何有用的…

此答案适用于选项A

这确实是一个非常困难的问题。从这样一种高级编程语言访问低级硬件是非常困难的。我曾经用汇编来做这件事,它可以给你非常低级的控制。我能想到的唯一一件事就是哪一个也有很好的C#包装。它提供对USB设备(如打印机)的直接访问。一个好的开端是控制更简单的usb设备来掌握窍门。确保您知道打印机如何解释从usb端口写入的数据


我只是想问一个一般性的指导原则,在哪些方面是实现最终结果的正确步骤。
但不是这样。那么我们就把代码放进去吧,我也很满意,因为我不知道如何开始。谢谢。根本不要做任何“检测”。隐藏打印机之间的差异是Windows的工作。每个打印机在你的程序中看起来都是一样的。@user2212907
那么把代码放好,这就是我们希望你做的:),否则试试谷歌。你不想尝试接近A。这就是疯狂。您最终编写了自己的打印机驱动程序。使用方法B,首先找到所需的打印机。请看,例如。谢谢,这是一个有用的答案!如果我在几天内没有收到任何更好的答案,我会检查你的最佳答案。我需要控制一台COM串行打印机,但我发现C#有一些库可以做到这一点,所以我使用System.IO.Ports.SerialPort命名空间解决了这个问题。既然你回答的主题仍然让我感兴趣,我也会检查libusb的工作情况。再次感谢你。