質問

ESC/P コードを送信しています (http://webpages.charter.net/dperr/links/esc_p83.htm) を、COM1 に接続されている Epson LX-300 プリンタに送信します。この PC には、他の人が必要とする正しいドライバがすでにインストールされています。

そこで私はこれを書きました:

using System.IO.Ports;

public class EpsonPrint {

    private char esc = (char)27;
    private char ff = (char)12;

    public static void Main (string[] args) {
        new EpsonPrint();
    }

    public EpsonPrint() {
        SerialPort port = new SerialPort("COM1", 19200, Parity.None, 8,  StopBits.One);
        port.Open();
        port.Write(esc+"@hola mundo!"+ff);
        port.Close();
    }
}

そして、それは機能しますが、別のポートまたは他のものを指すEpsonドライバーでのみ機能します。COM1を使用させると、上記のコードがスローされるためです。

「指定されたポート名が COM/com で始まっていないか、有効なシリアル ポートに解決されません。」

記録のために言っておきますが、これは「ポートがすでに開いています」エラーではありません。

役に立ちましたか?

解決

COM1はプリンタードライバーにより保持されます。これにより、アプリケーションによるポートのオープンが防止されます。プリンタードライバーのプロパティでプリンターポートをCOM1以外に切り替えてみてください。これ以降、アプリケーションは COM1 を自由に使用できるようになります。

他のヒント

私はあなたがドライバーにしていないポートに送信する必要があると思います。この記事をチェックアウト:

http://support.microsoft.com/kb/138594/EN-米国/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top