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

Come si simula una stampante parallela (LPT) con una stampante USB?

Ho un software legacy che stampa solo su stampanti collegate tramite una porta LPT. La macchina che devo utilizzare, tuttavia, non ha una porta parallela. Inoltre la mia stampante è un dispositivo USB.

Come faccio a far credere al mio computer che la mia stampante usb sia collegata alla porta lpt?

Inoltre, questo è per un ufficio. Avrò i diritti di amministratore quando implementerò il lavoro in giro, ma sto cercando una soluzione che funzioni mentre un utente “normale” viene registrato dopo che tutto è stato impostato.

Risposte (8)

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

È possibile ingannare Windows utilizzando la stampante USB come stampante “di rete” fittizia collegata a LPT1.

Connetti la stampante USB

Connetti la stampante condivisa come LPT1

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

L'utilizzo di un adattatore da USB a parallelo non ha alcun senso. Qui stiamo parlando dell'utilizzo di un software molto vecchio su hardware con connessioni solo USB. Nel mio caso, una stampante per etichette ZEBRA.

La soluzione nel mio caso era.

  1. Installare la stampante USB con i suoi driver (solo per trovare a quale porta USB è collegata)
  2. Installare la stampante USB con i suoi driver (solo per trovare a quale porta USB è collegata). Cambiare la porta del driver in FILE (e liberare la porta USB)
  3. 3. Installare un driver Generico / Solo testo e cambiare la porta con la stessa porta USB logica vista al punto 1
  4. 4. Condividere la stampante Generic /Text Only per renderla facilmente visibile in VBA
  5. Installare l'adattatore Microsoft Loopback su un indirizzo IP fisso non utilizzato (altrimenti la stampante non sarà visibile quando il cavo sarà scollegato)
  6. Installare l'adattatore Microsoft Loopback su un indirizzo IP fisso non utilizzato (altrimenti la stampante non sarà visibile quando il cavo sarà scollegato)
  7. Installare l'adattatore Microsoft Loopback in FILE (e liberare la porta USB) Assegnare una porta LPTx: come spiegato in precedenza dalla riga di comando (questo è per ogni SW che necessita di una vecchia LPT)

Con poche righe di codice sarete in grado di inviare i codici ASCII alla stampante come usato in passato.

Ora potete facilmente stampare in VBA (testato con Windows 7 64-bit e ZM400 stampante 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

I programmi DOS sono ancora utilizzati nel mondo degli affari. I consigli su come farli funzionare correttamente su una moderna piattaforma informatica sono dilaganti sul Web. Ecco cosa ha funzionato per me.

Il programma DOS a 16 bit con cui dobbiamo lavorare risiede su un server Windows 2003 a 32 bit che sarà presto rimosso. Fino ad allora, una quota del programma è mappata su due macchine client a 32 bit del dominio primario con Group Policy. Un collegamento al file .cmd che avvia il programma viene posizionato manualmente sui client, anche sul dominio primario. Il programma funziona bene su Windows 8.1. Un po’ un compromesso per essere sicuri, ma le macchine verranno aggiornate a Windows 8.1 a 64 bit quando il programma DOS, che funziona dal dominio secondario, verrà ritirato.

La stampa dal programma rappresenta la sfida più grande. Con questo programma vengono utilizzate due diverse stampanti parallele, ma il programma stampa solo su una singola porta e non vi è alcuna possibilità di modificare questo comportamento. È necessario stampare un assegno sulla stampante laser? Deve essere collegato alla porta LPT1. È necessario stampare un dump di dati sulla stampante ad aghi? Deve essere collegato anche alla porta LPT1. Due persone lavorano con questo programma ogni giorno, quindi useremo i loro computer, uno per ogni stampante. Installiamo la prima stampante:

  • Se il computer ha una porta DB-25 (parallela) fisica è possibile disabilitarla nel BIOS. Windows 8.1 non la supporterà e non ne abbiamo bisogno.

  • Per collegare la stampante al computer si usa un adattatore per stampante parallela da USB a DB25 modello 16899 USB a DB25. L'adattatore si installa automaticamente e non viene riconosciuto come dispositivo parallelo o porta LPT.

  • Ora aprire Dispositivi e Stampanti. Fare clic su Aggiungi stampante e selezionare La stampante che voglio non è elencata. Nella finestra di dialogo successiva scegliere Aggiungi una stampante locale o una stampante di rete con impostazioni manuali e, nella finestra di dialogo successiva, Usa una porta esistente. Selezionare una porta stampante virtuale per USB, USB001 o USB002, dall'elenco e non le opzioni della porta LPT.

  • La prima stampante è una stampante a matrice di punti multimodale Panasonic KX-P1191. La stampante non è elencata nella finestra di dialogo che chiede un driver e l'aggiornamento della lista cliccando su Windows Update non aiuta. Un controllo del sito di supporto Panasonic indica che la stampante non è completamente supportata a questo punto, ma uno specialista del supporto tecnico Panasonic ha aiutato a risolvere il problema che ha portato al driver Epson FX Series 1(80) incluso in Windows 8.1. Funziona perfettamente.

Ora la stampante è installata. Ma è sulla porta USB001 e il programma stamperà solo sulla porta LPT1. La soluzione è relativamente semplice e può essere integrata direttamente nel file batch utilizzato per avviare il programma. Facciamo un po’ di vecchia scuola e facciamo uno scherzo alla nostra stampante: la condivideremo e stamperemo su LPT1 in questo modo.

  • Clicchiamo con il tasto destro del mouse sulla stampante e scegliamo Proprietà. Condividiamo la stampante, non la elenchiamo nella directory, creiamo un breve nome di condivisione solo per buona misura, e poi ci assicuriamo che l'utente della macchina cliente sia elencato nel Gruppo o nell'area del nome utente sotto la scheda Sicurezza.

  • Le due persone che stamperanno su queste stampanti creano la mia busta paga, così ho dato loro i diritti di amministrazione del dominio. Questo potrebbe essere stato inutile. Entrambi sono utenti sul dominio primario ma non sul secondario, e non volevo perdere tempo a risolvere il problema dei permessi.

Ora modificate il file batch e utilizzate il ben documentato comando di utilizzo della rete per implementare la soluzione di stampa:

@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>
``` &001 


Dove COMPUTER è il nome del computer e PRINTER è il nome condiviso della stampante. La procedura ha funzionato altrettanto bene su un secondo computer per la stampante HP LaserJet 1100 utilizzando il driver "HP LaserJet 1100 (MS)" fornito con Windows 8.1. 


### -- NOTE -- 


** Errore di sistema 5:** 


Assicurarsi che l'utente sia elencato nella scheda di sicurezza. "Tutti" può essere rimosso. Sono necessari privilegi di amministrazione del dominio per l'utente? Probabilmente no, se tutto è in esecuzione da un dominio. 


** Errore di sistema 66:** 


Controlla la tua sintassi. Probabilmente hai sbagliato a scrivere il nome del computer, della stampante, o forse hai dimenticato i due punti? È necessario solo un punto, secondo la documentazione Microsoft. L'aggiunta di un punto inutile a lpt1[:] causerà un errore? 


Tutto sull'uso della rete [ https://technet.microsoft.com/en-us/library/bb490717.aspx ](https://technet.microsoft.com/en-us/library/bb490717.aspx)
2
2
2
2010-08-30 20:09:20 +0000

Forse controllare WinPrint :

Prende l'uscita standard della stampante prodotta da un'applicazione DOS, e la inoltra ad una stampante predefinita di Windows. Converte la pagina del codice, elimina le pagine vuote, supporta i caratteri BOX DRAWINGS. Funziona su tutte le piattaforme Windows.

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

Utilizzare il programma di stampa DOS per manipolare le porte disponibili sui dispositivi desiderati. Lo si può scaricare da questa linea 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)

Prima eseguire dosprint e dosprintui come amministratore, dopo aver fatto doppio clic sull'icona del vassoio dosprintui, si può ottenere la lista delle porte disponibili da mappare, poi fare doppio clic sul pulsante lpt1 o in set e scegliere la stampante desiderata per mappare su di essa e cliccare su ok. BINGO ora è possibile stampare sulla porta LPT1 e la stampante usb lo stamperà per voi.

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

Mi trovavo nella stessa posizione con il software personalizzato basato su Clipper. Ho cercato un software di emulazione parallela per stampare su una stampante usb che funzionasse un po’, ma che avesse i suoi problemi. Superare il 64 Bit win10 no dos problemi è stata una vera sfida.

ho trovato Harbour HMG che, dopo aver cambiato alcune righe di codice ha ricompilato il software dell'applicazione a 32 bit. Ho anche fatto scrivere alle mie app i dati su file temporanei che ho preso con Microsoft Access per pubblicare dei report formattati fantastici. Oh, BTW. Ora le app funzionano in Windows 10 a 64 bit con grandi miglioramenti nella memoria e nella velocità. Inoltre, faccio inviare i report alle stampanti della linea usb o ai getti d'inchiostro o a qualsiasi altra cosa io scelga.

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

Ci sono molti “paralleli agli adattatori usb” sul mercato. È possibile ottenerne uno online per circa 10 dollari, ed è probabilmente un buon punto di partenza.

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

Non avete detto quale hardware state usando, ma supponendo che si tratti di un PC Wintel, dovreste essere in grado di acquistare una generica scheda di porta parallela per esso quasi per niente. A parte questo, è possibile reindirizzarla utilizzando NET USE, come suggerito da harrymc.