Win98でPCに接続されているデバイスのCOMポート番号を
VB6.0で取得したいと思ってます。
レジストリから何とか取得出来そうですが、とても大変そうです。
そこで、デバイスマネージャ-システムの、「ポート(COM)」と「モデム」の
COMポート番号を取得する方法はありますでしょうか?
(繋がっている時だけ現れるようなので)
色々調べたのですが、分かりませんでした。
ロジック、API関数、書籍等何でもよいのですが、ご存知の方おりましたら
よろしくお願いします。
デバイスマネージャーから取得の方が難しいと思いますが。。。
普通はレジストリから取得でしょうね。
私には質問の方法はわかりません。
簡単にCOMポートが使用可能かどうかを知りたいのなら、
下記のようなコードはいかがでしょう?
On Error GoTo 10
MSComm1.CommPort = PotN
If MSComm1.PortOpen = False Then MSComm1.PortOpen = True
MSComm1.PortOpen = False
Exit Sub
10:
If err.Number = 8002 Then
MsgBox err.Description, vbCritical, "注意"
End If
COM1からCOM256まで走査させれば、
使用可能なポートの列挙とかもできますね。
>Win98でPCに接続されているデバイスのCOMポート番号を
どういう意味で接続と言っているのかわかりませんが、
シリアルケーブルが接続されていなくても、
デバイスマネージャーには表示されます。
#ただし、USB-RS232C変換ケーブル等の、
#プラグ&プレイなCOMポートは、
#接続されていなければ、表示されませんが。。。
説明が足りなくてすみません。ご指摘の通りUSB-RS232Cです。
アドバイスいただいた方法は、ポートを何度も読みにいく事でログが残り、
セキュリティ面で問題があると言われてしまいました。。
地道にレジストリを大捜索しようと思います。
ご返答ありがとうございました。
ここの掲示板の・・・
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200402/04020027.txt
ご参照下さい。
※ NT/2000/XP でしたら、権限の問題が出るかもしれません。
お試し下さい。
以上。
こんな素晴らしい方法があったのですね!検索不足でした。
完徹して長々とロジックを組んでいたので、お教え頂き感激です。
テストをしたところ、2000では上手くいきましたが、98ではエラーがでました。
必要ファイルをインストールして使いたいと思います。
(98も対応のものを作っているので、98のロジックでしか使いませんので。)
ありがとうございました!