Консультация № 53801
30.08.2006, 18:38
0.00 руб.
0 2 2
Здравствуйте. У меня такой вопрос : как с помощью команды outs вывести данные на принтер, если он подключен к USB ?
И вообще как узнать номер порта USB ?

Обсуждение

Неизвестный
30.08.2006, 21:48
общий
это ответ
Здравствуйте, Whitemen!

Если принтер подключен к USB, то так просто вывести данные на принтер не получится.
Использовать USB принтер под DOS маловероятно (врят ли у вас есть такие драйверы), а под Windows, если NT - произойдет исключение (т.к. команды outs и ей подобные запрещены для рядовых приложений), если 9х - то ничего дельного не выйдет.
Дело в том что для каждого принтера USB кроме определнных правил передачи данных через интерфейс (USB) - существуют свои прикладные протоколы, известные только разарботчикам, принтеру и его драйверам. Поэтому, даже найдя в DOS‘е нужный номер порта USB, принтер ничего дельного не выдаст, собственно как и в Windows 9x.
Вообще для любого Windows‘a все делается без заморочек и гораздо проще:

Вариант 1:
1. Создаем новый DC, ассоциированный с соответтсвующим принтером,
2. Определяем возможнотси принтера (может печатать только текст, еще и графику и пр.)
3. Рисуем на нем все, что хотим, или что принтер сможет отобразить
4. Отправляем на принтер (указываем разбиение на странички, выравнивание и т.п.)
5. Удаляем DC

Вариант 2:
1. Запрашиваем DC нужного принтера у Windows,
2. Определяем возможнотси принтера,
3. Рисуем на DC и пр.
4. Печатаем.
5. Освобождаем DC.
Неизвестный
01.09.2006, 09:45
общий
это ответ
Здравствуйте, Whitemen!

Командой outs вывести на USB ничего нельзя... Через порты компьютера можно только настроить сам USB порт... А все передаваемое внешним устройствам находиться в ОЗУ...
Номер порта USB можно узнать только:
1. Если устройство единственное, то просмотреть порты на присутствие какого-либо устройства (прочитать регистр статуса (обычно по адресу адрес USB платы на PCI шине+0x40+номер порта*4))...
Форма ответа