Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Определение способа подачи бумаги

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

psa1974



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man
greenpc
щас еду на работу... как раз и попробую

----------
У программёра есть два состояния: "Втупляю" и "Попёрло"...

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 14:23 15-12-2009
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
То есть получается, что вызов DeviceCapabilities(Device, Port, DC_BINNAMES, nil, nil); исключения не вызывает. Значит Винда получает количество названий не тупо подсчетом #0, а видать количество тоже драйвер выдает.
 

greenpc

Цитата:
а если...

А это зависит от пользовател(-ей, -ьниц) Aleksandr N.
Может и:
'Там, где меньше пыли'
'Там, где больше бумаги'
'Принтер умный - сам выберет'
и т.д.

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 14:49 15-12-2009 | Исправлено: data man, 14:50 15-12-2009
greenpc

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man
вы меня немого не правильно поняли. я привел реальные соотвествия DC_BINS-DC_BINNAMES. и еще в сети пробегало следующее
Цитата:
Беда в том что эти значения не совсем соответствуют кодам лотков в принтерах, причем у разных принтеров они РАЗНЫЕ! Так, например, "Tray 1" в HP4100 имеет код 260, а в Lexmark E350d - 279.  


Цитата:
 DeviceCapabilities(Device, Port, DC_BINNAMES, nil, nil);  

точнее так : <кол-во имен> :=DeviceCapabilities(Device, Port, DC_BINNAMES, nil, nil); _http://msdn.microsoft.com/en-us/library/dd183552(VS.85).aspx
смотреть значение 4 параметра null

Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 15:09 15-12-2009
psa1974



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Итак. Тесты для Хулипакарда (HP LaserJet P2015 Series PCL 6):
а) программа с применением DeviceCapabilities(Device, Port, DC_BINS, PChar(pBins), nil);, результат:

Код:
Aвтoвыбop
Aвтoвыбop пpинтepa
Pучнaя пoдaчa, лoтoк 1
Лoтoк 1
Лoтoк 2
Лoтoк 3

 
б) программа по алгоритму data man. Результат:

Код:
DMBIN  FORMSOURCE
Heизвecтный иcтoчник бумaги !
Heизвecтный иcтoчник бумaги !
Heизвecтный иcтoчник бумaги !
Heизвecтный иcтoчник бумaги !
Heизвecтный иcтoчник бумaги !

Второй вариант, увы, не подходит.
 
Добавлено:
Щас заглянул в реестр... там, например для hp 1320 PCL 6  26 строк в пареметре printBinNames. Причем большая часть не имеет отношения к типу подачи. Вариант с реестром тоже не подходит.
 
Добавлено:
Aleksandr N
интересно, как с обновленными дровами? (мне уже влом их качать...)

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 17:01 15-12-2009
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извиняюсь за опоздание
psa1974

Цитата:
в Дельфи 7 для фазера-ксерокса ошибка вываливает что в режиме трассировки (отладки) что при запуске отдельно экзешника, созданного в Дельфи 7

Ошибка как таковая не вываливается во время работы. При нажатии на кнопку выходит два раза окно ЦПУ. Ошибка выходит при закрытии программы - картинка см. выше. Ошибка как в IDE так и в отдельном экзешнике.

Цитата:
проверил урезанный вариант... - "те же яйца, вид сбоку"...  

Аналогично.

Цитата:
Это те, которые с включенным EurekaLog

Это те, которые:

Цитата:
Вот, смотри (именно так и сделал - конвертируя-переконвертируя строки): Ссылка (внутри 2 проекта, с экзешниками)...

Дальше ситуация интереснее про

Цитата:
чисто юникодовый экзешник в Дельфи 2010  
экзешник в Дельфи 7 (с и без EurekaLog)  

Проверил заодно и на Win98. Сделанное на D2009/2010 вообще не запустилось. Обычный экзешник выдаёт "Invalid pointer operation", а с EurekaLog выдаёт
Подробнее...
а на ХР выдаёт
Подробнее...
Отсюда можно сделать выводы:
ОС и пусть и кривой драйвер не причём. Виновата именно D7 с ошибочным методом обработки вызова параметра. Это видно при использовании разных ОС и разных IDE. Думаю в этой ситуации врятли получится что-то сделать. Придётся каким-то хитрым методом использовать модули от D2009.
data man
Помотрю.
greenpc
Я в сотый раз говорю, что речь идёт о потенциально опасной ситуации. Неизвестно у какого пользователя какой будет драйвер. А каждый раз говорить пользователю "не виноватая я..." - это не выход.
 
Теперь мне понятен принцип ошибки. Буду следить за ситуацией. Если сам найду что-то кардинально новое - сообщу.

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 00:44 16-12-2009
psa1974



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr N

Цитата:
Проверил заодно и на Win98. Сделанное на D2009/2010 вообще не запустилось

правильно, так и должно быть - Win98 юникод не поддерживает, этой ОС юникод вообще даже и не снился (хотя... мелкософт там что-то выпустила - какой-то патч, но это от лукавого)! Начиная с Дельфи 2009 про Win98 забываем как про операционку в принципе! последняя поддерживающая Win98 Дельфи - 2007.
 
Приведенные тобой логи в 98 и в ХР виндах имеют одно и то же место происхождения ошибки:  

Код:
|Address |Module |Unit |Class |Procedure/Method|Line |
|004B19F3|PROJECT7.EXE|Unit1.pas | |GetPaperBins |82[25]|

 
Согласен, ОС тут не причем.  
Насчет Дельфи 7 - она так же "ни причем" как и "ни причем" Дельфи 2010 - в режиме трассировки в Дельфи 2010 вылазит точно такая же ошибка. и в том же месте. Только вот каким то макаром она гасится если экзешник запущен не из под ИДЕ (думаю, тут сам компилятор взял на себя какую-то доп. обработку). Но это не выход. Ф-цию все равно колбасит. Ты просто этого не видишь поскольку не можешь запустить в ИДЕ под Дельфи 2010 отладку... А на слово верить не хочешь. Дело хозяйское.
А вот кривой драйвер - огого как причем! Т.е. конечно сам драйвер не кривой - печатает то он нормально, но он не выдерживает спецификаций АПИ, а значит... По крайней мере, был бы он "прямой" - не было бы 3-х страниц этих изысканий.


----------
У программёра есть два состояния: "Втупляю" и "Попёрло"...

Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 01:07 16-12-2009
greenpc

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr N

Цитата:
Неизвестно у какого пользователя какой будет драйвер

а известно что за система будет у пользователя nix или win 3.1(nt4) или вынь7?
вы дали драйвер 2001года. Все пресутствующие сошлись во мнении что драйвер данный вами с ошибками. вот здесь _http://www.alteh.ru/qa/2909 и на офф. форуме на ваш принтер рекомендуют первое что сделать - обновлять драйвера.
согласитесь прошло много времени 2001-2009
Не поленился скачал драйвер ( WC 3210 Drivers and Utilities  
Version: 6-16-09  Date: 6/16/2009  Size: 121.5MB ) с оффсайта
результат - ошибок НЕТ.
соотвествие бин-название

Цитата:
7 автоматический выбор
4 ручная подача
1 лоток 1

Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 08:09 16-12-2009 | Исправлено: greenpc, 08:29 16-12-2009
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
psa1974

Цитата:
А на слово верить не хочешь

Почему, верю. В том-то и дело, что ошибка как-то гасится и не выдаётся. Вполне вероятно что и сама программа будет вести себя адыкватнее...
greenpc
Я тоже не поленился.
 
 
В общем принцип ясен. "Будем искать" (С) (Семён Семёныч)

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 10:45 16-12-2009
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Другого способа, как только переустановить драйвера у пользователя способа не нашёл...
 
Ещё раз спасибо всем откликнувшимся.

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 02:38 10-01-2010
cepmak

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Что в файлах или в реестре (или где-то там...) нужно заменить чтобы распечатать нужную мне текстовую информацию (книга Луи Буссинара "Ледяной ад") на рулон бумаги - ширина 21 см, длина-длинная (:  - у меня есть лазерный принтер Cannon MF 3228 и этот гад хочет чтобы бумага имела конец. Как ему объяснить чтобы он неискал конец бумаги?

Всего записей: 7 | Зарегистр. 16-11-2009 | Отправлено: 20:06 23-01-2010
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cepmak
1. Это ветка по программированию.
2. В файлах ничего не поправишь. В реестре править бесполезно (если найдёшь где).
3. Я без проблем печатал на 6-и метровых листах. Выстави заказной размер бумаги и будет тебе ЩАСЬЕ...
 

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 08:51 24-01-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Определение способа подачи бумаги


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru