Использование USB-принтера с C#, с драйвером или API и без него

Я не совсем эксперт по c#, я сделал некоторые неудобные вещи, такие как фортепианный ролл для музыкальной программы (так что создание холста WPF все с математикой и тому подобное) и некоторые простые программы для выполнения общих задач, таких как разработка некоторых данных на лету (математические операции, взаимодействия GUI и т. д.

Мне нужен очень общий обзор того, как я могу обнаружить USB-принтер на своем компьютере и работать с ним. Я уже искал это здесь и в google, и это то, что я найдено:

ссылка 1

Ссылка 2

Ссылка 3

Ссылка 4

Ссылка 5

Ссылка 6

и другие подобные ссылки, рассказывающие различные методы, из которых я почти ничего не понял : (

OK, вот что я придумал (я постараюсь быть как можно более кратким):

A) для использования принтера без драйверов (это определение может быть неточным, но я немного запутался...)

Я:

1) Найдите способ обнаружения дверей usb и какое устройство подключено к ним через идентификатор продукта и идентификатор поставщика. В частном случае Developerfusionarticle authore объясняет некоторые основы USB и говорит вам использовать устройство интерфейса человека, чтобы обнаружить его. (Я использую windows 7, и я не могу найти HID, просто другие случайные USB-накопители, и я понятия не имею Все о том, как с ними взаимодействовать)

2)Создайте потоки данных и отправьте их на usb-принтер (или устройство watever, которое вы собираетесь пилотировать) вместе с командами на правых каналах сообщений.

B) для использования принтера с драйверами или Windows API или prebaked драйверами:

Я:

1) Используйте все классы .NET, найденные в системе [MSDN.библиотеки печати][номер ссылки 6] и пилот непосредственно принтер (после поиска устройства с использование системы.библиотеки печати) с использованием правильных методов из этих классов...

Ок, что:

Я действительно понятия не имею, на каких правильных шагах, и это то, что я пытаюсь спросить вас:

шаг к шагу руководство о том, как это сделать, особенно первый (как я видел на форуме MSDN вопрос второй действительно вопрос изучения кода). Я не хочу, чтобы вы писали код для меня (хотя вы можете, если хотите). Я просто спрашиваю. общее руководство, на котором правильные шаги, чтобы следовать для достижения конечного результата. Публикуйте ссылки, все, что работает...

1 ответов


этот ответ для варианта A

очень сложная проблема. Доступ к низкоуровневому оборудованию, от такого высокоуровневого языка программирования очень жесток. Раньше я делал это с помощью сборки, которая может дать вам очень низкоуровневый контроль. Единственное, о чем я могу думать, это libusb который имеет хорошие обертки для C#. Он обеспечивает прямой доступ к USB-устройствам, таким как принтеры. Хороший старт C# будет контролировать более простые usb-устройства, чтобы повесить его. Убедитесь, что вы узнайте, как принтер интерпретирует данные, записанные с usb-порта.

в C# привязки