EndDocPrinter Спит 3 секунды без оболочки (explorer.exe) - PullRequest
0 голосов
/ 04 августа 2010

При отладке, когда POS имеет оболочку Windows по умолчанию (explorer.exe), она печатает успешно, но если мы заменим оболочку Windows по умолчанию нашей программой или любой другой программой (например, cmd.exe), и мы напечатаем с помощьюте же функции, он спит при вызове EndDocPrinter около 3 секунд.

Недопустимо печатать 3 заявки за 12 секунд, и я понятия не имею, что тестировать сейчас.

Обходной путь - запустить стандартную оболочку без панели задач (синяя нижняя панель),но, по-видимому, невозможно скрыть его от начала до конца сеанса Windows.

Это не проблема драйвера, поскольку мы тестируем его с нашим драйвером принтера и некоторыми стандартными драйверами принтера в виде общего текста.только hplaserjet4 и т. д.

Разработка POS с Windows XP Embedded, Windows Embedded 2009, Windows XP Proferssional.

Печать документов с помощью OpenPrinter, StartDocPrinter, StartPagePrinter, WritePrinter, EndPagePrinter и EndDocPrinterФункции

1 Ответ

0 голосов
/ 21 июня 2012

Я разобрал EndDocPrinter, и, кажется, пытается найти окно с именем класса PrintTray_Notify_WndClass.Регистрация нового класса с таким именем и создание скрытого окна избавили от задержки.Это уродливый обходной путь, который может сломаться в любое время.Протестировано только в XP SP3.

Конечно, после всей этой работы я погуглил PrintTray_Notify_WndClass и нашел это: http://social.msdn.microsoft.com/Forums/en-US/embeddedwindowscomponents/thread/ecff648f-fc01-477c-ba3b-b92272c4f3a4

...