11

我不完全是 C# 专家,我做了一些尴尬的事情,比如为音乐程序制作钢琴卷轴(所以生成一个 WPF 画布,全部包含数学等)和一些简单的程序来执行常见任务,比如动态处理一些数据(数学运算、GUI 交互等。

我需要一个关于如何在我自己的计算机上检测 USB 打印机并使用它的非常笼统的概述。我已经在这里和谷歌上搜索过,这就是我发现的:

链接 1

链接 2

链接 3

链接 4

链接 5

链接 6

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

好的,这就是我想出的(我会尽量简短):

A)使用没有驱动程序的打印机(这个定义可能不准确,但我有点困惑......)

我应该:

1)找到一种方法来检测USB门以及通过产品ID和供应商ID连接到它们的设备。在 Developerfusion 文章的特定案例中,作者解释了 USB 的一些基础知识,并告诉您使用人机接口设备来检测它。(我使用的是 Windows 7,但找不到任何 HID,只有其他随机 USB 驱动器,而且我完全不知道如何与它们交互)

2)创建数据流并将它们与正确的消息管道上的命令一起发送到 USB 打印机(或您打算试用的水设备)。

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

我应该:

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

好的,说明重点:

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

一步一步的指导如何做到这一点,特别是第一个(正如我在 MSDN 论坛问题上看到的那样,第二个实际上是研究代码的问题)。我不希望您为我编写代码(尽管您可以根据需要)。我只是问一个一般指导方针,哪些是实现最终结果的正确步骤。发布链接,任何工作...

4

1 回答 1

5

此答案适用于选项 A

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

C# 绑定

于 2013-03-31T07:46:15.467 回答