Есть ли способ в Windows (который работает в Windows CE), чтобы проверить, подключен ли принтер и взаимодействует ли с LPT1 в C ++?
[Изменить] Подробнее:
В настоящее время мы работаем с универсальным драйвером принтера для Windows CE - pcl.dll
- передав его в CreateDC
, чтобы получить DC для принтера.
Мы не можем позвонитьPrintDlg()
, чтобы показать диалоговое окно печати, потому что оно «слишком сложно выглядит» , но мы также не можем вызвать его с помощью PD_RETURNDEFAULT
, потому что мы делаемне хочу использовать принтер по умолчанию.Итак, мы вручную настраиваем структуру DEVMODE
для передачи в CreateDC
.
После того, как у нас есть DC, мы вызываем GetDeviceCaps()
, чтобы получить информацию для принтера(например, ширину страницы и т. д.), затем StartPage()
/ EndPage()
/ ExtTextOut()
для печати.
Однако, если принтер не подключен, программа останавливается примерно на минуту, прежде чем выдать «Отменить / повторить / не выполнить?» диалоговое окно (я не знаю, в какой точке этого процесса он зависает).Другое программное обеспечение не останавливается при попытке печати, поэтому должен быть способом предотвращения этого ...