web-dev-qa-db-ja.com

USBプリンタでパラレル(LPT)プリンタをシミュレートするにはどうすればよいですか?

LPTポート経由で接続されたプリンタでのみ印刷する従来のソフトウェアがあります。私が使用する必要があるマシンは、しかし、パラレルポートを持っていません。さらに私のプリンタはUSBデバイスです。

どうやったら私のusbプリンタがlptポートに接続されていると思うように私のコンピュータをだますことができますか?

また、これはオフィス用です。回避策を実装するときには管理者権限を持ちますが、すべての設定が完了した後に「通常の」ユーザーがログインしている間に解決するソリューションを探しています。

18
Dane O'Connor

USBプリンタをLPT1に接続されたダミーの「ネットワーク」プリンタとして使用すると、Windowsをトリックできます。

USBプリンタを共有します

「プリンタ」など、覚えやすい共有名を使用してください。

共有プリンタをLPT1として接続します

Net Use LPT1: \\[Computer-Name]\Printer /PERSISTENT:YES
21
harrymc

USBをパラレルアダプタに使用しても意味がありません。ここでは、USB専用接続のハ​​ードウェア上で非常に古いレガシーソフトウェアを使用することについて話しています。私の場合は、ZEBRAラベルプリンタです。

私の場合の解決策はでした。

  1. USBプリンタとそのドライバをインストールします(接続されているUSBポートを確認するためだけに使用します)。
  2. ドライバのポートをFILEに変更します(そしてUSBポートを解放します)。
  3. Generic/Text Onlyドライバをインストールし、ポイント1と同じ論理USBポートにポートを変更します
  4. VBAで見やすくするためにGeneric/Text Onlyプリンタを共有する
  5. Microsoft Loopback Adapterを未使用の固定IPアドレスにインストールします(そうしないと、ケーブルが外されたときにプリンタが見えなくなります)。
  6. 以前にコマンドラインで説明したようにLPTx:portを割り当てます(これは古いLPTを必要とするすべてのSW用です)。

数行のコードで、ASCIIコードをプリンタに送信することができます。

VBAで簡単に印刷できるようになりました(Windows 7 64ビットおよび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
5
Angelo Gabriele

DOS印刷プログラムを使用して、目的のデバイスへの利用可能なポートを操作します。あなたはこのリンクからそれをダウンロードすることができます https://www.dropbox.com/s/gdx05sckmbqnast/dosprint.exe?dl=0 (dos Print)

https://www.dropbox.com/jp/al​​f6hdd5fctepmo/dosprintui.exe?dl=0 (dos Print UI)

最初に管理者としてdosprintとdosprintuiを実行し、それからdosprintuiトレイアイコンをダブルクリックした後、あなたはマップするための利用可能なポートのリストを得て、次にlpt1またはセットボタンをダブルクリックし、それにマップしてクリックOK。 BINGO今あなたはLPT1ポートに印刷することができますそしてあなたのUSBプリンタはあなたのためにそれを印刷するでしょう。

2
Govinda Thapa

DOSプログラムはまだビジネスの世界で使用されています。最新のコンピューティングプラットフォーム上でそれらを適切に機能させる方法についてのアドバイスは、Web上で蔓延しています。これは私のために働いたものです。

私たちが使用する必要がある16ビットDOSプログラムは、まもなく削除される32ビットWindows 2003サーバー上にあります。それまでは、プログラムへの共有は、グループポリシーを使用して、プライマリドメインから2台の32ビットクライアントコンピュータにマップされます。プログラムを起動する.cmdファイルへのショートカットは、手動でクライアントにも、プライマリドメインにも配置されます。プログラムはWindows 8.1上でうまく動きます。ちょっとした妥協が必要ですが、セカンダリドメインから実行されるDOSプログラムが廃止されると、マシンは64ビットWindows 8.1にアップグレードされます。

プログラムから印刷することが最大の課題です。このプログラムでは2つの異なるパラレルプリンタが使用されていますが、プログラムは単一のポートにのみ印刷し、この動作を変更することはできません。レーザープリンタに小切手を印刷する必要がありますか?ポートLPT1に接続する必要があります。ドットマトリックスプリンタにデータダンプを印刷する必要がありますか?ポートLPT1にも接続する必要があります。 2人がこのプログラムを毎日使用しているので、各プリンタに1台ずつ、自分のコンピュータを使用します。最初のプリンタをインストールしましょう。

  • コンピュータに物理的なDB-25(パラレル)ポートがある場合は、BIOSで無効にできます。 Windows 8.1はそれをサポートしないでしょう、そして我々はそれを必要としません。

  • Cables-to-Goモデル16899 USB-to DB25パラレルプリンタアダプタを使用して、プリンタをコンピュータに接続します。アダプタは自動的にインストールされ、パラレルデバイスまたはLPTポートとして認識されません。

  • 今すぐデバイスとプリンタを開きます。 [プリンタの追加]をクリックし、[必要なプリンタが一覧にない]を選択します。次のダイアログで手動設定でローカルプリンタまたはネットワークプリンタを追加を選択し、次のダイアログで既存のポートを使用を選択します。リストからUSB用の仮想プリンタポ​​ート(USB001またはUSB002)を選択し、LPTポートオプションは選択しないでください。

  • 最初のプリンタは、パナソニックKX-P1191マルチモードドットマトリックスプリンタです。プリンタがドライバを要求するダイアログボックスに表示されず、Windows Updateをクリックしてリストを更新しても意味がありません。 Panasonicのサポートサイトを確認したところ、この時点ではプリンタは完全にはサポートされていませんでしたが、Panasonicテクニカルサポートの専門家がWindows 8.1に含まれるEpson FX Series 1(80)ドライバを導きました。それは完璧に機能します。

これでプリンタがインストールされました。しかし、それはポートUSB001上にあり、プログラムはポートLPT1にのみ印刷します。解決策は比較的簡単で、プログラムの起動に使用されるバッチファイルに直接統合できます。それでは、古い学校に行って、私たちのプリンタでトリックを試しましょう。それを共有し、そのようにしてLPT1に印刷します。

  • プリンタを右クリックして[プロパティ]を選択します。プリンタを共有し、ディレクトリに表示しないで、わかりやすいように短い共有名を作成してから、クライアントマシンのユーザーが[セキュリティ]タブの[グループ]または[ユーザー名]領域に表示されるようにします。

  • これらのプリンタで印刷する2人の人が私の給料を作成するので、私は彼らに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>

COMPUTERはコンピュータの名前、PRINTERはプリンタの共有名です。手順は、Windows 8.1に付属の「HP LaserJet 1100(MS)」ドライバを使用して、HP LaserJet 1100プリンタ用の2台目のコンピュータでも同様に機能しました。

- ノート -

システムエラー5:

ユーザーがセキュリティタブの下に表示されていることを確認します。 「みんな」を削除することができます。ユーザーにドメイン管理者権限が必要ですか。すべてが1つのドメインから実行されている場合は、おそらくそうではありません。

システムエラー66:

構文を確認してください。あなたはおそらくコンピュータ、プリンタの名前のスペルを間違えたのでしょうか、それともコロンを逃したのでしょうか。 Microsoftの資料によると、コロンは1つだけ必要です。不要なコロンをlpt1 [:]に追加すると失敗しますか?

ネット使用についてのすべて: https://technet.Microsoft.com/ja-jp/library/bb490717.aspx

2
blinkdt

おそらく WinPrint をチェックしてください。

DOSアプリケーションによって生成された標準プリンタ出力を受け取り、それをデフォルトのWindowsプリンタに転送します。コードページを変換し、空のページを取り除き、ボックス描画文字をサポートします。すべてのWindowsプラットフォームで動作します。

2

市場にはたくさんの "パラレルUSBアダプタ"があります。あなたは約10ドルで1つをオンラインで手に入れることができます、そしてそれはおそらく始めるのに良い場所です。

0
Joe Internet

あなたが使っているハードウェアは何も言っていませんが、それがWintel PCであると仮定すると、あなたはそれのために一般的なパラレルポートカードを買うことができるはずです。それとは別に、harrymcが示唆しているように、Net Useを使ってリダイレクトすることができます。

0
boot13

私はカスタムデザインのビジネスクリッパーベースのソフトウェアと同じ立場にいました。いくつかのパラレルエミュレーションソフトウェアを見て、ややうまくいったが独自の問題を抱えているusbプリンタに印刷しようとしました。 64ビットwin10 no dos問題を克服することは本当の挑戦でした。

Harbour HMGが見つかりました。数行のコードを変更した後、アプリソフトウェアを32ビットに再コンパイルしました。私は自分のアプリに一時ファイルにデータを書き込ませ、それをMicrosoft Accessでつかんで書式設定された素晴らしいレポートをいくつか出力します。ああ、ところで。これで、アプリケーションは64ビットWindows 10で動作し、メモリと速度が大幅に向上しました。また、レポートをusbラインプリンタやインクジェットなど、自分が選んだものに送信します。

0
Rob S