2010-08-30 18:49:48 +0000 2010-08-30 18:49:48 +0000
18
18

Как имитировать параллельный (LPT) принтер с USB-принтером?

У меня есть старое программное обеспечение, которое печатает только на принтерах, подключенных через LPT-порт. Однако, машина, которую я должен использовать, не имеет параллельного порта. К тому же мой принтер является USB-устройством.

Как обманом заставить компьютер думать, что мой USB-принтер подключен к порту lpt?

Более того, это для офиса. Я буду иметь права администратора при реализации работы, но я стремлюсь к решению, которое работает, пока “обычный” пользователь входит в систему после того, как все настроено.

Ответы (8)

21
21
21
2010-08-30 19:26:24 +0000

Вы можете обмануть Windows, используя USB-принтер в качестве фиктивного “сетевого” принтера, подключенного к LPT1.

Для совместного использования USB-принтера

Используйте общее имя, которое легко запомнить, например, “Принтер”.

Подключите общий принтер как LPT1

NET USE LPT1: \[Computer-Name]\Printer /PERSISTENT:YES
```.
5
5
5
2012-10-26 15:44:27 +0000

Использование USB к параллельному адаптеру не имеет смысла. Здесь мы говорим об использовании очень старого унаследованного программного обеспечения на оборудовании с подключением только через USB. В моем случае, принтер для этикеток ZEBRA.

Решение в моем случае было.

  1. Установите USB-принтер с его драйверами (просто чтобы узнать, к какому USB-порту он подключен)
  2. Измените порт драйвера на FILE (и освободите порт USB)
  3. Установите общий драйвер / только текст и измените порт на тот же логический USB-порт, как показано в пункте 1
  4. 5. Установите адаптер обратной связи Майкрософт на фиксированный неиспользуемый IP-адрес (в противном случае ваш принтер не будет виден при отсоединении кабеля)
  5. Назначьте порт LPTx:, как объяснялось ранее командной строкой (это для каждого ПрО, которому нужен старый LPT)

С помощью нескольких строк кода вы сможете посылать на принтер ASCII-коды, как это было раньше.

Теперь вы можете легко печатать на VBA (протестировано на 64-разрядном принтере Windows 7 и принтере ZM400 Zebra)

Open "\Kb\ZM400" For Output As #1 'Kb = computer Name; ZM400 = Shared printer name
For rows = 1 To 37 ' send the first 37 rows of ASCII codes from the worksheet "STRINGS"
    Print #1, Worksheets("STRINGS").Cells(rows, 1).Value
Next
Close #1
```.
2
2
2
2015-02-16 01:35:25 +0000

Программы DOS до сих пор используются в мире бизнеса. Советы о том, как заставить их нормально работать на современной вычислительной платформе, широко распространены в Сети. Вот что мне помогло.

16-битная DOS-программа, с которой нам нужно работать, находится на 32-битном сервере Windows 2003, который вскоре будет удален. А до тех пор часть программы сопоставляется с двумя 32-битными клиентскими машинами из основного домена с помощью групповой политики. Ярлык на .cmd файл, который запускает программу, размещается вручную на клиентах, также на основном домене. Программа хорошо работает на Windows 8.1. Немного компромисса, чтобы быть уверенным, но машины будут обновлены до 64-bit Windows 8.1, когда DOS программа, которая запускается из вторичного домена, выйдет на пенсию.

Печать из программы представляет собой самую большую проблему. С этой программой используются два разных параллельных принтера, но программа печатает только на один порт, и нет возможности изменить это поведение. Нужно распечатать чек на лазерном принтере? Она должна быть подключена к порту LPT1. Нужно распечатать дамп данных на матричный принтер? Она также должна быть подключена к порту LPT1. С этой программой ежедневно работают два человека, поэтому мы будем использовать их компьютеры, по одному на каждый принтер. Установим первый принтер:

  • Если компьютер имеет физический порт DB-25 (параллельный), то его можно отключить в BIOS. Windows 8.1 его не поддерживает, и он нам не нужен.

  • Для подключения принтера к компьютеру используется адаптер параллельного принтера Cables-to-Go модели 16899 USB to DB25. Адаптер устанавливается автоматически и не распознается как параллельное устройство или LPT-порт.

  • Теперь откройте Принтеры и Устройства. Нажмите Добавить принтер и выберите Принтер, который мне нужен, в списке нет. В следующем диалоге выберите Добавить локальный принтер или сетевой принтер с ручными настройками, а в следующем диалоге используйте существующий порт. Выберите из списка порт виртуального принтера для USB, USB001 или USB002, а не параметры LPT-порта.

  • Первый принтер - многорежимный матричный принтер Panasonic KX-P1191. Принтер не указан в диалоговом окне, которое запрашивает драйвер, и обновление списка нажатием кнопки Windows Update не помогает. Проверка сайта поддержки Panasonic показывает, что принтер полностью не поддерживается на данный момент, но специалист технической поддержки Panasonic помог озадачить след, который привел к Epson FX серии 1(80) драйвер, включенный в Windows 8.1. Теперь принтер установлен. Но он находится на порту USB001 и программа будет печатать только на порт LPT1. Решение относительно простое и может быть интегрировано прямо в пакетный файл, который используется для запуска программы. Давайте по старинке и разыграем трюк с нашим принтером: мы поделимся им и распечатаем на LPT1 таким образом.

  • Щелкните правой кнопкой мыши на принтере и выберите Свойства (Properties). Общий доступ к принтеру, не указывайте его в каталоге, создайте короткое имя ресурса просто для хорошей меры, а затем убедитесь, что пользователь клиентской машины находится в списке в области Group или имя пользователя в закладке Security (безопасность).

  • Два человека, которые будут печатать на эти принтеры, создают мою зарплату, поэтому я дал им права администратора домена (Domain Admin). Это, возможно, было излишним. Оба являются пользователями основного домена, но не вторичного, и я не хотел тратить время на диагностику проблемы с разрешениями.

  • Теперь модифицируйте пакетный файл и используйте хорошо документированную команду net use для реализации решения печати:

@echo off
::delete the printer
net use lpt1 /delete
::add the printer
net use lpt1 \\COMPUTER\PRINTER /persistent:yes
::fire up the nasty ol' DOS program
<existing syntax used to start the program>
  • Где КОМПЬЮТЕР - имя компьютера, а ПРИНТЕР - имя ресурса принтера. Процедура одинаково хорошо работала на втором компьютере для принтера HP LaserJet 1100 с использованием драйвера “HP LaserJet 1100 (MS)”, поставляемого с Windows 8.1.

– NOTES –

Ошибка системы 5:

Убедитесь, что пользователь находится в списке под закладкой безопасности. “Все” могут быть удалены. Требуются ли пользователю привилегии администратора домена? Вероятно, нет, если все запущено из одного домена.

Ошибка системы 66:

Проверьте синтаксис. Вы, вероятно, неправильно написали имя компьютера, принтера, или, возможно, пропустили двоеточие? Согласно документации Microsoft, нужен только один двоеточие. Будет ли добавление ненужного двоеточия в lpt1[:] приводить к ошибке?

Все о сетевом использовании https://technet.microsoft.com/en-us/library/bb490717.aspx .

2
2
2
2010-08-30 20:09:20 +0000

Возможно, обратите внимание на WinPrint :

Принимает стандартный принтер, выдаваемый DOS-приложением, и перенаправляет его на принтер Windows по умолчанию. Преобразовывает кодовую страницу, удаляет пустые страницы, поддерживает символы BOX DRAWINGS. Работает на всех платформах Windows.

2
2
2
2014-08-27 08:13:02 +0000

Используйте программу печати DOS для управления доступными портами на нужных устройствах. Вы можете загрузить ее из этой строки https://www.dropbox.com/s/gdx05sckmbqnast/dosprint.exe?dl=0 (dos Print) https://www.dropbox.com/s/alf6hdd5fctepmo/dosprintui.exe?dl=0 (dos Print UI)

Сначала запустите dosprint и dosprintui от имени администратора, после этого дважды щелкните по иконке в лотке dosprintui, вы можете получить список доступных портов для карты, затем дважды щелкните по lpt1 или по кнопке set и выберите нужный принтер для карты на нем и щелкните по окну ok. BINGO теперь можно распечатать на порт LPT1, и ваш USB-принтер распечатает его для вас.

0
0
0
2017-12-06 15:24:37 +0000

Я был в том же положении с заказным программным обеспечением на базе Clipper. Посмотрел на некоторые параллельные эмуляции программного обеспечения для печати на USB-принтер, который работал несколько, но имели свои собственные проблемы. Преодоление 64-битной win10 никаких проблем с дозой не было реальной проблемой.

я нашел Harbour HMG, который, после изменения нескольких строк кода перекомпилировал программное обеспечение приложения на 32 бита. Также мои приложения записывают данные в временные файлы, которые я получаю с помощью Microsoft Access, чтобы выкладывать потрясающие отформатированные отчеты. О, кстати. Теперь приложения работают в 64-битных окнах 10 с большим улучшением памяти и скорости. Кроме того, у меня есть отчеты, отправляемые на USB-строчные принтеры или чернильные струи, или что угодно по моему выбору.

0
0
0
2010-08-30 19:03:35 +0000

На рынке существует множество “параллельных USB-адаптеров”. Вы можете получить один онлайн около $ 10, и это, вероятно, хорошее место для начала.

0
0
0
2010-08-30 19:29:20 +0000

Вы не сказали, какое оборудование вы используете, но предполагая, что это компьютер Wintel, вы должны быть в состоянии купить общую карту параллельного порта для него практически за бесценок. Кроме того, вы можете перенаправить ее, используя NET USE, как предлагает Harrymc.

Похожие вопросы

5
21
13
3
8