【VB.Net】自身のコンピュータにインストールされているシリアルポート一覧の取得

どうも!リョクちゃです。

今回は、自身のコンピュータにインストールされているシリアルポートを取得する方法を、

Windowsアプリケーションを作成しながら紹介していきます。

自身のコンピュータにインストールされているシリアルポートは、

デバイスマネージャで確認することができます。

ちなみに前回の記事はこちら

今回はAsciiコードを16進数に変換する方法について、簡単なWindowsアプリケーションを例に紹介しています。Asciiコードは、幅広く世界的に使われる文字コードとなっています。7ビットで構成され、上位ビット3桁+下位ビット4桁で構成されます。(上位ビットの足りない1ビットは、パリティチェック用に使用されます。)実際は、8ビットになります。

コンピュータにインストールされているシリアルポートの確認

デバイスマネージャを開きます。

Windows10だと、Windowsボタンを右クリック することで

デバイスマネージャを選ぶ画面が立ち上がるので、デバイスマネージャをクリックします。

筆者の環境では、COM3とCOM4がインストールされていました。

準備編

VisualStudio2019を使って、Windowsフォームアプリケーションを作成していきます。

最初の手順については、下記記事をご参照ください。

VisualStudioを使ってWindowsアプリケーションを開発していく流れを紹介します。 以前に、簡単にざっくりと教える機会があった...
スポンサーリンク




フォームの作成

以下のようなフォームを作成します。

①~③のコントロールについては以下の表のとおりです。

Noコントロール名前
1LabelLabel1
2ComboBoxcbxSerialPorts
3ButtonbtnOk

各コントロールのフォントは、メイリオの18ptを設定しています。

実行環境

筆者の実行環境は、

  • VisualStudio2019
  • Windows 10 64bit
  • .Net Framework 4.5.1

になります。

※ Windows7 8 8.1でも動作はできますが、画面デザインの表示が変わるかもしれません。

アプリケーションの目的

コンボボックスのプルダウンに自身の環境のCOMポートが表示でき、

選択したCOMポートがOKボタンを押すと、メッセージボックスで

表示されることを目的とします。

動作

動作としては、

  • 画面起動時にCOMポート一覧を取得しcbxSerialPortsに追加します。
  • cbxSerialPortsのプルダウンを押すことで、一覧が表示される。
  • btnOkを押すことで、選択されたCOMポートを表示する。
    COMポートが選択されていない場合は、アラートを表示する。

これらができることとします。

プログラム編

実際にプログラムを書いていきます。

シリアルポート一覧の取得

以下の書き方で自身の環境にインストールされているシリアルポートを取得します。

My.Computer.Ports.SerialPortNames

今回はコンボボックスに追加するので、リスト型に変換して事前に変数に渡しておきます。

SerialPortsNamesの後に、.ToListを付加しています

こうすることで、取得したシリアルポート一覧をリスト型で渡してくれます。

リスト型については、こちらも参考にしてみてください。

VB.Netでリストの使い方や作り方を紹介しています。Windowsフォームアプリケーションを作成する際にリストとコンボボックスを組み合わせた使い方も紹介しています。

コンボボックスへ追加

コンボボックスへの追加は、以下のコードで行います。

コンボボックス.Items.Add(追加したい値)

とすることでコンボボックスへ項目を追加できます。

コンボボックスについてはこちらも参考にしてみてください。

VB.Netで指定したテキストファイルを読み取って出力したり、 複数行にわたるテキストファイルを読み取ってコンボボックスに格納する、やり方を紹介しています。

画面起動時

プログラムが実行され画面がロードされるときに、

先ほどのコードが実行できるようにします。

画面のロードには以下のイベントが使われます。

MyBsae.Load
コードは、デザイナー画面でフォームをダブルクリックすると自動生成されます。

この中に、シリアルポート一覧の取得、コンボボックスへの追加を書いていきます。

こんな感じですね。

ボタンが押されたら

OKボタンが押されたらメッセージボックスへコンボボックスで

選択されたシリアルポートを表示します。

ボタンが押されたら発生するイベントは、

ボタン.Click

でした。

これもデザイナー画面でフォームに配置されたボタンをダブルクリックすることで

コードが自動生成されます。

この中にコードを書いていきます。

メッセージボックスについてはこちらの記事を参考にしてみてください。

Windowsアプリケーションを作るうえで、メッセージボックスはエラー内容や必要な情報を通知してくれるのに非常に役立つツールです。今回はメッセージボックスの使い方をざっくりと紹介しています。

コンボボックスで選択された値の取得

以下のコードで取得ができます。

コンボボックス.SelectedItem.ToString

※ToStringにしているのは、今回は文字列型で受け取りたいからです。

メッセージボックスの設定

選択された情報を表示する前に、コンボボックスが空白でないかチェックをします。

空白だと、選択されていないとみなし、アラートを通知します。

この条件分岐には、以下のコードを書きます。

それぞれメッセージボックスのコードを条件分岐後に書きます。

全体のコード

コピペして自身の環境で試すのにご活用ください。

実行編

実際に実行をしていきます。

プログラム起動時

コンボボックスのプルダウンを押した時

選択して、OKボタンを押した時(選択編)

選択して、OKボタンを押した時(未選択編)

まとめ

自身の環境にインストールされているシリアルポート一覧の取得方法について紹介しました。

シリアル通信の際のポート選択のときに、

アプリケーション使用ユーザに選んでもらう際などに有効かと思います。

急なポート変更時にも活用できるのではないでしょうか。

ハードウェアと絡めて記事にしてみようかな。

最後までお読みいただきありがとうございます。

・こちらの書籍を参考にVB.Net勉強しています。

スポンサーリンク