1

私のローカルマシンでは、

  • Windows XP
  • ポート (COM & LPT)
    • COM3
    • RIM 仮想シリアル ポート v2 (COM4)
    • RIM 仮想シリアル ポート v2 (COM5)

次のコード、

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
using System.Threading;

namespace OpenSerialPortTest
{
    class Test
    {
        static void Main(string[] args)
        {
            foreach (String serialPortName in SerialPort.GetPortNames())
            {
                SerialPort serialPort = new SerialPort(serialPortName);
                try
                {
                    serialPort.Open(); // Line 19
                    Console.WriteLine(serialPort.PortName);
                }
                catch (Exception ex1)
                {
                    Console.WriteLine(ex1);
                    try
                    {
                        serialPort.Close();
                    }
                    catch (Exception ex2)
                    {
                        Console.WriteLine(ex2);   
                    }
                }
            }
            Console.ReadLine();
        }
    }
}

以下をスローしますArgumentException

ここに画像の説明を入力

あれは、

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

なぜこれが起こっているのか誰にも分かりますか?

4

1 に答える 1

2

http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/35954173-2eeb-46af-bb3e-86840c6b5484を ご覧ください。

問題は、これらの COM ポートが別のものにマップされ、応答としてこの奇妙なエラーが発生したことだったようです。

私はまったく同じ問題を抱えていました。同じポートを使用するように Windows プリンターをセットアップしていることがわかりました。プリンター設定でポートを変更するとすぐに、SerialPort.Open() が機能しました。

于 2012-07-23T01:33:08.090 に答える