|
.NET TIPS
すべてのシリアル・ポートの名前を列挙するには?[2.0のみ、C#、VB]
デジタルアドバンテージ 一色 政彦
2006/11/10
|
|
|
.NET Framework 2.0では、シリアル・ポートを取り扱うSerialPortクラス(System.IO.Ports名前空間)が追加されている。本稿ではこのクラスを使って、現在のコンピュータが持つすべてのシリアル・ポートの名前(COM1、COM2など)を列挙する方法を説明する。
シリアル・ポート名を列挙するには、SerialPortクラスの次のメソッドを呼び出せばよい。
このメソッドはパラメータを持たず、戻り値として文字列配列を返す。
次のコードは、実際に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クラスの機能は、本稿で示したシリアル・ポート名を列挙するというだけでなく、もちろん各シリアル・ポートの入力バッファからデータを読み込んだり、出力バッファにデータを書き込んだりすることもできる。これらの方法については後日あらためて紹介する。
利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:クラス・ライブラリ 処理対象:シリアル・ポート
使用ライブラリ:SerialPortクラス(System.IO.Ports名前空間) |
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間