Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как правильно послать текс USB-принтеру?  (Прочитано 17634 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Костя
Гость
« : 15-08-2003 10:57 » 

Какие есть варианты:
1. Печать при помощи виндов, т.е. что-то вроде CreateDC(NULL, szDevice, NULL, NULL); и дальше рисуем в этот ди-си. Так всё замечательно работает.
2. Послать текст напрямую на принтер (т.е. как в добрые старые времена copy a.txt prn), т.е. для принтера на параллельном порту вызываем CreateFile("LPT1",...); затем текст пишем WriteFile-ом... Так вот для LPT всё нормально работает, если принтер зашарить в сети и CreateFile("\\Host\PrinterName",...) тоже всё хорошо, а вот если CreateFile("USB001",...), то говорит, что нет такого. Как бы без этого шаринга таким образом печатать?
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #1 : 15-08-2003 11:19 » 

Читай тему LPT порт. У тебя в винде только первый метод.
Ну или через драйвер принтера.
Записан

А птичку нашу прошу не обижать!!!
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #2 : 15-08-2003 11:27 » 

Цитата

 CreateFile("USB001",...),


Кто же тебе такое насоветовал- слать на PDO контроллера USB. С USB так не работают. Надо или печатать стандартными ф-циями, или узнать, как общаться с драйвером USBPRNT.
Записан
Костя
Гость
« Ответ #3 : 15-08-2003 11:47 » 

Всем спасибо, но

Гром-у
про LPT -- пишет, что ссылки на старый форум не работают. У меня в винде оба метода.

SlavaI
Ну и как общиться с драйвером USBPRINT или где читать???

Прошу заметить, что CreateFile и WriteFile на UNC имя принтера проходит.
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #4 : 15-08-2003 12:53 » 

Цитата

Ну и как общиться с драйвером USBPRINT или где читать


У Microsoft спроси. Тема общения с USB девайсами поднималась в старом форуме. Вот Grom его выложит- почитаешь.

Цитата

Прошу заметить, что CreateFile и WriteFile на UNC имя принтера проходит.


Еще бы она не работала, когда ты в спуллер печати пишешь.
Это не доказывает правильность прямой записи в контроллер USB, это не LPT порт, а принципиально другое устройство.
Записан
Костя
Гость
« Ответ #5 : 15-08-2003 13:10 » 

SlavaI.
Эххх. Да хоть в чёрта лысого оно через UNC пишет, мне надо, чтоб было как через UNC, только без него. Ты вообще то сначала скажи на скока тыщщь процентов знаешь, как в случае указания этого UNC всё там происходит. Если знаешь, то колись Ага а если не то...так и скажи, что хз как оно работает, а то ты у меня подозрения оставляешь в том, что знаешь как сделать, но молчишь Ага))
Записан
Anonymous
Гость
« Ответ #6 : 15-08-2003 13:49 » 

Ладно, приоткрою завесу тайны. Далее только про NT/2k/XP/2003.
Когда в LPT порт воткнут принтер, то при обращении к LPT порту посредством CreateFile, ты обращаещься на самом деле к именованному каналу спуллера печати, то есть если ты думаешь, что открыв LPT1 при помощи CreateFile, ты открыл порт, то ты заблуждаешься- ты открыл именованный канал спуллера и пишешь в него, поэтому все так чудно работает. Связано это с тем, что LPT это всего лишь ссылка и уазывать может на что угодно, поэтому без принтера она казывает на \Device\Parallel0, а с принтером на \Device\NamedPipe\Spoller\Lpt1. Во как!
Когда ты по UNC обращаешься, происходит то же. При попытке писать по имени принтера запись перенаправляется в спуллер печати.
С USB такого нет.
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #7 : 15-08-2003 13:51 » 

Блин, это я написал предыдущий пост. Что-то у меня автоматического входа не происходит.
Записан
Костя
Гость
« Ответ #8 : 15-08-2003 14:06 » 

SlavaI
Хорошо Отлично  Давай приоткрывать завесу тайны дальше! Как по UNC CreateFile или кто там находит то правильное имя и как можно его самому получить?
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #9 : 18-08-2003 05:57 » 

Цитата

Как по UNC CreateFile или кто там находит то правильное имя


А ты это имя сам указал в CreateFile, никаких подпольных трансляций этого имени в что-то другое CreateFile не делает( я не замечал, чтобы это когда-то происходило). Разбором имен занимается сама операционная система и вызывает драйвера, обслуживающие устройства с этими именами, а дальше имя разбирает драйвер.
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #10 : 18-08-2003 08:21 » 

Старый форум готов на половину. Жаль Не успеваю пока.
Записан

А птичку нашу прошу не обижать!!!
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #11 : 18-08-2003 11:09 » new

Цитата

Старый форум готов на половину.


Тогда хотя бы половину выложи.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines