Затем используйте WriteFile для посылки строки символов или сделайте так:
Whilenot TransmitCommChar( LPTHandle, CharToSend ) do
Application.ProcessMessages;
Этим вы перешлете в параллельный порт строчку символов. Для обработки код ждет
последний символ, после чего немедленно посылает новый. Метод на поверку
оказался весьма быстр.
Эта строка использует функцию CreateFile для создания handles для принтера LPT1. Параметры следующие:
'LPT1': имя принтера (в этом случае, первый параллельный порт)
GENERIC_WRITE: указывает, что мы хотим записать в файл
0: не указано режим совместного использования
PSecurityAttributes(nil): указатель на структуру безопасности атрибутов, которая установлена в nil в этом случае
OPEN_EXISTING: открывает файл, если он уже существует, или создает новый, если нет
FILE_FLAG_OVERLAPPED: указывает, что мы хотим использовать асинхронное ввод-вывод (т.е., асинхронное ввод-вывод)
0: не указаны дополнительные параметры
Отправка символов на принтер
While not TransmitCommChar(LPTHandle, CharToSend) do
Application.ProcessMessages;
Эта петля отправляет символ на принтер с помощью функции TransmitCommChar. Параметры следующие:
LPTHandle: handle для принтера LPT1 (создан ранее)
CharToSend: символ, который нужно отправить на принтер
Петля будет продолжаться, пока функция TransmitCommChar не вернет True, указывая, что символ был успешно отправлен.
Примечание: Стatement Application.ProcessMessages используется для обработки любых pending сообщений в очереди сообщений приложения. Это необходимо потому, что функция TransmitCommChar может блокироваться на короткий период времени при отправке символа, и мы хотим обеспечить, что любые другие задачи или события обрабатываются во время этого периода.
В целом, это код создает handle для принтера LPT1 и использует его для отправки индивидуальных символов на принтер с помощью функции TransmitCommChar.
Сброс на печать текстового файла в Windows может быть выполнен с помощью дескриптора порта LPT1, полученного с помощью функции CreateFile, и последующего использования WriteFile или TransmitCommChar для посылки строки символов.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS