COMポートの詳細設定画面をC#から開く

COMポート番号を変更したい場合、通常は以下のようにデバイスマネージャから詳細設定画面を開く必要がある。C#のアプリケーションでRS232C接続をする場合、RS232C-USB変換アダプタを使うのが一般的だと思うが、この時COMポート番号が不定になってしまい、環境ごとにデバイスマネージャからこの画面を開くのが手間で改善策を検討した。

f:id:cactuaroid:20200218235517p:plain

しかし、コマンドラインからCOMポート番号を変更するには恐らくレジストリを直接いじるような方法しか見当たらず、怖いので完全自動化は諦めて、以下を参考にして、必要なタイミングでこの詳細設定画面を直接プログラムから開いて手動設定する代替案を実装した。

stackoverflow.com

ついでに、SerialDisplayAdvancedSettingsがPInvoke.netに載っていなかったので追加した。

https://www.pinvoke.net/default.aspx/msports/SerialDisplayAdvancedSettings.html