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

Comment simuler une imprimante parallèle (LPT) avec une imprimante USB ?

Je dispose d'un logiciel qui n'imprime que sur les imprimantes connectées via un port LPT. La machine que je dois utiliser n'a cependant pas de port parallèle. De plus, mon imprimante est un périphérique USB.

Comment faire croire à mon ordinateur que mon imprimante usb est connectée au port LPT ?

De plus, ceci est pour un bureau. J'aurai des droits d'administrateur lors de la mise en place du travail, mais je cherche une solution qui fonctionne pendant qu'un utilisateur “normal” est connecté après que tout a été configuré.

Réponses (8)

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

Vous pouvez tromper Windows en utilisant l'imprimante USB comme une fausse imprimante “réseau” connectée à LPT1.

Partagez l'imprimante USB

Utilisez un nom de partage facile à retenir, tel que “Imprimante”.

Connectez l'imprimante partagée comme LPT1

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

Utiliser un adaptateur USB vers parallèle n'a aucun sens. Nous parlons ici de l'utilisation d'un très ancien logiciel sur du matériel avec des connexions USB uniquement. Dans mon cas, une imprimante d'étiquettes ZEBRA.

La solution dans mon cas était la suivante :

  1. installer l'imprimante USB avec ses pilotes (juste pour savoir sur quel port USB est connecté)
  2. Changer le port du pilote en FILE (et libérer le port USB)
  3. Installez un pilote générique / texte seul et changez le port en port USB logique comme vu au point 1
  4. Partager l'imprimante Generic /Text Only afin de la rendre facilement visible en VBA
  5. Installer l'adaptateur Microsoft Loopback sur une adresse IP fixe inutilisée (sinon votre imprimante ne sera pas visible lorsque le câble est débranché)
  6. Assignez un port LPTx : comme expliqué précédemment par ligne de commande (ceci est pour chaque SW qui a besoin d'un ancien LPT)

Avec quelques lignes de code, vous pourrez envoyer des codes ASCII à l'imprimante comme par le passé.

Maintenant vous pouvez facilement imprimer en VBA (testé avec Windows 7 64-bit et l'imprimante 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

Les programmes DOS sont toujours utilisés dans le monde des affaires. Les conseils pour les faire fonctionner correctement sur une plateforme informatique moderne sont légion sur le web. Voici ce qui a fonctionné pour moi.

Le programme DOS 16 bits avec lequel nous devons travailler réside sur un serveur Windows 2003 32 bits qui sera bientôt supprimé. D'ici là, une part du programme est mappée sur deux machines clientes 32 bits du domaine principal avec la politique de groupe. Un raccourci vers le fichier .cmd qui lance le programme est placé manuellement sur les clients, également sur le domaine principal. Le programme fonctionne bien sous Windows 8.1. C'est un peu un compromis, mais les machines seront mises à niveau vers Windows 8.1 64 bits lorsque le programme DOS, qui fonctionne à partir du domaine secondaire, sera retiré.

L'impression à partir du programme présente le plus grand défi. Deux imprimantes parallèles différentes sont utilisées avec ce programme, mais le programme n'imprime que sur un seul port et il n'y a pas d'option pour changer ce comportement. Vous avez besoin d'imprimer un chèque sur l'imprimante laser ? Elle doit être connectée au port LPT1. Vous devez imprimer un transfert de données vers l'imprimante matricielle ? Elle doit être également connectée au port LPT1. Deux personnes travaillent quotidiennement avec ce programme, nous utiliserons donc leurs ordinateurs, un pour chaque imprimante. Installons la première imprimante :

  • Si l'ordinateur a un port physique DB-25 (parallèle), vous pouvez le désactiver dans le BIOS. Windows 8.1 ne le supportera pas et nous n'en avons pas besoin.

  • Un adaptateur pour imprimante parallèle Cables-to-Go modèle 16899 USB à DB25 est utilisé pour connecter l'imprimante à l'ordinateur. L'adaptateur s'installe automatiquement et n'est pas reconnu comme un dispositif parallèle ou un port LPT.

  • Ouvrez maintenant la section Dispositifs et imprimantes. Cliquez sur Ajouter une imprimante et sélectionnez L'imprimante que je veux n'apparaît pas dans la liste. Dans la boîte de dialogue suivante, choisissez Ajouter une imprimante locale ou une imprimante réseau avec des paramètres manuels et, dans la boîte de dialogue suivante, Utiliser un port existant. Sélectionnez un port d'imprimante virtuel pour USB, soit USB001 ou USB002, dans la liste et non les options de port LPT.

  • La première imprimante est une imprimante matricielle multimode KX-P1191 de Panasonic. L'imprimante n'est pas listée dans la boîte de dialogue qui demande un pilote et la mise à jour de la liste en cliquant sur Windows Update n'aide pas. Une vérification du site d'assistance de Panasonic indique que l'imprimante n'est pas du tout prise en charge pour le moment, mais un spécialiste de l'assistance technique de Panasonic a aidé à reconstituer la piste qui a conduit au pilote Epson FX Series 1(80) inclus dans Windows 8.1. Il fonctionne parfaitement.

Maintenant, l'imprimante est installée. Mais elle est sur le port USB001 et le programme n'imprimera que sur le port LPT1. La solution est relativement simple et peut être intégrée directement dans le fichier batch qui est utilisé pour démarrer le programme. Faisons un tour de magie avec notre imprimante : nous la partagerons et imprimerons sur LPT1 de cette façon.

  • Cliquez sur l'imprimante avec le bouton droit de la souris et choisissez Propriétés. Partagez l'imprimante, ne l'inscrivez pas dans le répertoire, créez un nom de partage court juste pour faire bonne mesure, puis assurez-vous que l'utilisateur de la machine cliente figure dans la zone Groupe ou nom d'utilisateur sous l'onglet Sécurité.

  • Les deux personnes qui imprimeront sur ces imprimantes créent mon chèque de paie, je leur ai donc donné les droits d'administrateur de domaine. Cela n'était peut-être pas nécessaire. Les deux sont des utilisateurs du domaine principal mais pas du domaine secondaire, et je ne voulais pas passer du temps à résoudre le problème des autorisations.

Maintenant, modifiez le fichier batch et utilisez la commande bien documentée net use pour mettre en place la solution d'impression :

@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>

Où COMPUTER est le nom de l'ordinateur et PRINTER est le nom de partage de l'imprimante. La procédure a également bien fonctionné sur un deuxième ordinateur pour l'imprimante HP LaserJet 1100 en utilisant le pilote “HP LaserJet 1100 (MS)” fourni avec Windows 8.1.

– NOTES –

Erreur système 5:

Assurez-vous que l'utilisateur est listé sous l'onglet sécurité. “Tout le monde” peut être supprimé. L'utilisateur doit-il disposer de privilèges d'administrateur de domaine ? Probablement pas, si tout fonctionne à partir d'un seul domaine.

Erreur système 66:

Vérifiez votre syntaxe. Vous avez probablement mal orthographié le nom de l'ordinateur, de l'imprimante, ou peut-être manqué les deux points ? Un seul point est nécessaire, selon la documentation de Microsoft. L'ajout d'un deux-points inutile à lpt1[ :] provoque-t-il un échec ?

Tout sur l'utilisation du net https://technet.microsoft.com/en-us/library/bb490717.aspx

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

Peut-être que vous pouvez consulter WinPrint :

Prend la sortie d'imprimante standard produite par une application DOS et la transmet à une imprimante Windows par défaut. Convertit la page de code, supprime les pages vides, prend en charge les caractères BOX DRAWINGS. Fonctionne sur toutes les plates-formes Windows.

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

Utilisez le programme d'impression DOS pour manipuler vos ports disponibles vers les appareils souhaités. Vous pouvez le télécharger à partir de cette ligne 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)

Exécutez d'abord dosprint et dosprintui en tant qu'administrateur, puis double-cliquez sur l'icône dosprintui tray, vous pouvez obtenir la liste des ports disponibles à mapper, puis double-cliquez sur lpt1 ou sur le bouton in set et choisissez l'imprimante souhaitée à mapper et cliquez sur ok. BINGO maintenant vous pouvez imprimer sur le port LPT1 et votre imprimante usb l'imprimera pour vous.

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

J'étais dans la même position avec un logiciel personnalisé basé sur le Business Clipper. J'ai examiné un logiciel d'émulation parallèle pour imprimer sur une imprimante USB qui fonctionnait un peu mais qui avait ses propres problèmes. Surmonter les problèmes de 64 bits win10 no dos a été un vrai défi.

J'ai trouvé Harbour HMG qui, après avoir changé quelques lignes de code, a recompilé le logiciel d'application en 32 bits. J'ai aussi demandé à mes applications d'écrire des données dans des fichiers temporaires que je saisis avec Microsoft Access pour produire des rapports formatés impressionnants. Oh, BTW. Maintenant, les applications fonctionnent sous Windows 10 64 bits avec des améliorations majeures en termes de mémoire et de vitesse. De plus, je peux envoyer les rapports sur des imprimantes USB, des jets d'encre ou tout ce que je veux.

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

Il existe de nombreux “adaptateurs parallèles à l'usb” sur le marché. Vous pouvez en obtenir un en ligne pour environ 10 dollars, et c'est probablement un bon point de départ.

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

Vous n'avez pas dit quel matériel vous utilisez, mais en supposant qu'il s'agisse d'un PC Wintel, vous devriez pouvoir acheter une carte de port parallèle générique pour celui-ci pour presque rien. A part cela, vous pouvez le rediriger en utilisant NET USE, comme le suggère harrymc.