2011-01-06 8 views
3

だから私はSerialPort.Open()メソッドを使用して、次の例外を受け付けておりますCOM/comまたは有効なシリアルポートに解決されません "エラーが

ただし、私がデバイスマネージャでCom1ポートを無効にして有効にすると、すべて正常に動作します。それ以来、問題はありません。私はアプリを実行し、ポートを確実に開くことができます。しかし、PCをリセットしても、無効にしてから有効にするまで同じ問題が発生します。

コンピュータの起動時にCom1が開いているように見えません。 Com1が開いているときに私のアプリケーションで開こうとすると、私はArgumentExceptionを取得しません。むしろ、私はそのポートへのアクセスが拒否されたという例外があります。

私はこれをWindows 7マシンでのみ試みました。私はVS2010を使用しています。私は試みた。ネット3.5 & 4.0。

私が言ったように、アプリは一度正しく動作します。ポートをリセットします。何かご意見は?

コード(これは、簡単なテストアプリです):

public partial class Form1 : Form 
{ 
    SerialPort port = new SerialPort(); 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     string[] ports = SerialPort.GetPortNames(); 

     foreach (string element in ports) 
     { 
      textBox1.Text = element + "\r\n"; 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     port.PortName = "COM1"; 
     port.BaudRate = 9600; 
     port.Parity = Parity.None; 
     port.DataBits = 8; 
     port.StopBits = StopBits.One; 
     port.Handshake = Handshake.None; // Handshake.RequestToSend; 
     port.ReadTimeout = 1000; 
     port.WriteTimeout = 500; 
     try 
     { 
      port.Open(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 
     button1.Text = port.IsOpen.ToString(); 
    } 
} 

}

+0

私はいくつかのコードを表示できますか? –

+0

あなたの投稿を編集中... –

答えて

1

私はそれを考え出しました。

Adob​​e PDFは何らかの理由でCOM1に割り当てられています。 AdobeをCOM2に移行すれば、すべてうまくいく。私はAdobeが積極的にポートを使用していないので、私は "アクセスが拒否されていません"と考えています。

なぜAdobe PDFにシリアルポートが必要なのかわかりません。

THanksビュー/投票。

1

私はcomportを無効にしてから再び有効にしました!

たとえば、名前をCOM6に変更しました。いくつかのCOM6。手順のいくつかはある:コンボボックスから

コントロールパネル=>デバイスマネージャ=>シリアルポート(COM ... =>高度な設定=>

変更ポート名、

およびDELETEニトロ私のプリンタのデバイスのPDF