無効なCOMポートは選択リストから外せないでしょうか
cmake を使ってビルドするとバイナリディレクトリに lscom.exe ができています。 このツールを実行すると使用できるポートの一覧が出てきます。
COMポートをデバイスマネージャから無効にしたとき、 一覧に出てくるか見ていただけないでしょうか
lscom の結果を添付します。
無効にしても一覧には出てくるようです。
COM3, COM5 を無効にしています。
comポートの状態取得は
SetupDiGetClassInstallParamsA(W)()このAPIを使えばできそうなところまではわかったのですが、、 引数がわからない状態です。どこかにサンプルがあればいいのですが・・。
lscom.exeの出力が文字化けしているのではないでしょうか?
手もとでビルドしたlscom.exe(r10266相当)です。
https://osdn.net/projects/ttssh2/storage/tmp/20220914_zmatuso/
ためしていただけないでしょうか。
文字化けは特にみられませんでした。文字コードは、ShiftJISです。
ターミナルを開き、PowerShell起動。
cmd.exeを実行してコマンドプロンプトにし、lscom.exeを実行しています。
ターミナル上のlscom.exeの表示をエディタにコピー&ペーストしてテキストファイルに保存しています。
実現可能かは未確認。
COMポートは、デバイスマネージャから無効にすることができる。
無効にしても「新しい接続」のシリアルポートのリストには存在する。 接続しようとしても常に失敗する。
使用中のCOMポートは「新しい接続」メニューで選択対象から外してくれているので、 無効なシリアルポートも選択対象から外せないでしょうか。
また、「設定-シリアルポート」のダイアログのポートのリストも、 無効なシリアルポートは、選択対象から外せないでしょうか。