.NET TIPS

すべてのシリアル・ポートの名前を列挙するには?[2.0のみ、C#、VB]

デジタルアドバンテージ 一色 政彦
2006/11/10

 .NET Framework 2.0では、シリアル・ポートを取り扱うSerialPortクラス(System.IO.Ports名前空間)が追加されている。本稿ではこのクラスを使って、現在のコンピュータが持つすべてのシリアル・ポートの名前(COM1、COM2など)を列挙する方法を説明する。

 シリアル・ポート名を列挙するには、SerialPortクラスの次のメソッドを呼び出せばよい。

  • GetPortNamesメソッド

 このメソッドはパラメータを持たず、戻り値として文字列配列を返す。

 次のコードは、実際にGetPortNamesメソッドを使ってシリアル・ポート名を列挙している例だ。

using System;
using System.IO.Ports;

class Program
{
  static void Main(string[] args)
  {
    // すべてのシリアル・ポート名を取得する
    string[] ports = SerialPort.GetPortNames();

    // 取得したシリアル・ポート名を出力する
    foreach (string port in ports)
    {
      Console.WriteLine(port);
    }
    Console.ReadLine();
  }
}
// 筆者の環境の出力例:
// COM1
Imports System.IO.Ports

Module Module1

  Sub Main()
    ' すべてのシリアル・ポート名を取得する
    Dim ports() As String = SerialPort.GetPortNames()

    ' 取得したシリアル・ポート名を出力する
    Dim port As String
    For Each port In ports
      Console.WriteLine(port)
    Next
    Console.ReadLine()
  End Sub

End Module
' 筆者の環境の出力例:
' COM1
GetPortNamesメソッドを使ってシリアル・ポート名を列挙するサンプル・プログラム(上:C#、下:VB)

 ちなみに、GetPortNamesメソッドは有効なシリアル・ポートを照会して取得するようになっているが、Windows 98環境においては(照会せずに)レジストリ(具体的には「HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM」)から取得するようになっている。従ってこのレジストリの情報が誤っている場合、取得されるシリアル・ポート名も不正なものとなるので注意してほしい。

 なおSerialPortクラスの機能は、本稿で示したシリアル・ポート名を列挙するというだけでなく、もちろん各シリアル・ポートの入力バッファからデータを読み込んだり、出力バッファにデータを書き込んだりすることもできる。これらの方法については後日あらためて紹介する。End of Article

利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:クラス・ライブラリ 処理対象:シリアル・ポート
使用ライブラリ:SerialPortクラス(System.IO.Ports名前空間)

この記事と関連性の高い別の.NET TIPS
レジストリの値を列挙するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

@IT Special

- PR -

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
  • 第7回 Windowsアプリのデバッグ&リリース (2017/7/14)
     バグはどうやってつぶせばいいのか? 完成したアプリケーションはどうやってリリースすればいいのか? VS 2017入門の最終回
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH