carcon999のブログ

12年間Y!ブログの記載を移行しました。電子工作関連の記事が多いです。

COMポートの一覧取得ソース(VS2008 VC++)

.netのVC++で現在利用可能なCOMポートの一覧をレジストリから取り出してくるコードが以下です。
以下のソース中のstrComPortArrayの文字列配列に入ります。

///////////////////////////////////////////////////////////////////////////////////////
// COMポートの一覧を表示
// VS2008 VC++WindowsXP環境
///////////////////////////////////////////////////////////////////////////////////////
RegistryKey^ rk = Registry::LocalMachine->OpenSubKey( "HARDWARE\\DEVICEMAP\\SERIALCOMM" );

if(rk){
array<String>strPortNameArray = rk->GetValueNames();
array<String>strComPortArray = gcnew array<String^>(strPortNameArray->Length);

// COMポートの名称を追加する。
for(int i=0 ; i < strPortNameArray->Length ; i++){
strComPortArray[i] = (String^)rk->GetValue(strPortNameArray[i]);
}
rk->Close();
}

なにかの参考になれば幸いです。