使用可能なCOMポートの列挙をするには?

解決


あのぅ・・・  2005-03-24 19:45:55  No: 56766

使用可能なCOMポートを列挙するにはどうすればよろしいでしょうか?
いろいろ調べてみたのですがわかりませんでした。
宜しくお願い致します。

環境:XP XP2  CV++.net  ダイアログベース


am  2005-03-24 20:16:31  No: 56767

何を調べたのでしょうか?
Googleで検索したらすぐ見つかりましたよ。


岡田 之仁  2005-03-24 20:17:49  No: 56768

一般的には、CreateFileで、『COMx:』をオープンして開けるかどうかで、
確認するのが一番確実です。

WMIで、Win32_SerialPort で列挙する方法も簡単?ですが、列挙されない
増設ポートが存在しますので、NGでしょう・・・
http://www2.noritz.co.jp/anchor/ashp/netmon/samples/wmi_hard.html#Win32_SerialPort.htm

レジストリで、HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM\ 下
のものを閲覧すると言う手もありますが、こちらもここに登録されない
増設ポートが存在しますので、NG・・・

増設ポート等のドライバー書く人には、ちゃんと規定通りに登録情報を
あげて頂きたいのですが・・・

参考までに・・・

以上。


岡田 之仁  2005-03-24 20:23:54  No: 56769

追伸・・・

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=635&lngWId=10

ここのソースコードが参考になるかと・・・
ちょっと大きなプロジェクトですが、列挙していますので。
こちらのは、『COM1:〜COM32:』までをforループで回して、オープン
できたかどうかで列挙しています。

参考までに・・・

以上。


tetrapod  2005-03-24 20:53:08  No: 56770

岡田様に御意。
最近はやり?の USB/SERIAL IF など使っていると、プログラム起動時には無かった COMx が
突然 PnP されるとかありますので、起動時に列挙しても無駄なことがしばしば。
 (WM_DEVICECHANGE を捕らえて再列挙するとかの対策が必要)
そこまでするくらいなら、ポート名を手入力可能に組んでおくほうがいいです。


あのぅ・・・  2005-03-24 23:43:44  No: 56771

>am様  岡田 之仁様  tetrapod様
ありがとうございました。
無事に解決致しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加