XPでMS-DOSアプリケーションを動かす事はまずないだろうが、XPで16bitアプリケーションを動かす事はあるかもしれない。
そしてそのアプリケーションが印刷のために「COPY ABC.TXT LPT1:」とか「TYPE ABC.TXT > LPT1:」 なんてやってると困った事になる。
今時、オフィスでネットワークプリンタを使わない所もないだろうし。これらがバッチファイルで書かれているのなら 「LPT1:」の部分をネットワークプリンタ名に書き換えてやればいいのだが、実行ファイル内でリダイレクトとかされてるとそういう訳にも行かず、プリン タをローカル接続しなくてはならなくなってしまう。
それを回避するのがコレ。
[プリントサーバのプリンタをLPT1に割り当てる] NET USE LPT1: \\<サーバ名>\<共有プリンタ名> /persistent:yes
[LPT1に割り当てられているプリンタを解除] NET USE LPT1: /DELETE
これで「LPT1:」にリダイレクト(or コピー)されているプログラムやバッチファイルが動作する。
<サーバ名>はもちろんIPアドレスでも構わない。<共有プリンタ名>は「マイネットワーク」から見えるプリンタ名で あり、「プリンタとFAX」で見えているプリンタ名ではない。
Windowsで共有されているプリンタであれば、プリンタのプロパティを出して「共有」タ グで名前を確認できる。
割り当てられたプリンタポートはPCの電源を切っても再ログオン時にプリンタ割り当てを復元する(「/DELETE」を実行するま で有効)。
なお、「/persistent:no」オプションを指定すればログオン時のプリンタ割り当てを復元しなくなる。
See Also:
[パラレルポートに出力していた内容をUSBポートに出力するようにしたい。 ]
https://forums.embarcadero.com/thread.jspa?threadID=80915&tstart=50
|