COMポートに何がつながっているか知るには?

解決


すえ太朗  2004-02-09 15:26:46  No: 111735  IP: [192.*.*.*]

vb6  COMポートに何がつながっているか知るにはどうすれば良いでしょうか?

編集 削除
岡田 之仁  2004-02-09 15:50:50  No: 111736  IP: [192.*.*.*]

すごいこと聞きますネ!〜

何かが繋がっていたら、その何かは、何をするものでしょうか?
それを知っているのは、繋いだ人のみですが・・・

因みに可能性を言いますと、デモム関係ですと、CD信号やDTR等
の制御信号をON/OFFすれば、相手もON/OFFしてくるので、何か
が繋がってくるのは解ります。次にATコマンドを発行すれば
応答があれば、ATコマンドに応答する機材であることは解り
ます。ですが、FAXかもしれません・・・FAXであるかど
うかもATコマンドで識別は可能です。

ですが、世の中には、制御線に応答しない、いわゆる
『垂れ流し』
と言うRS-232C機材もあります。
そうしたものには、では、何を送るか?
その機器を知らないことには、コマンドを送ることすらできま
せんが・・・

結果として、何かが繋がっていると言うことは、制御線を持っ
ている場合のみ、何かが繋がっていることは認知が可能です。

他の機材の場合、不可能です。

※  あくまで自分がその何かを知っているので、通信が成立する
    のですから・・・

以上。

編集 削除
すえ太朗  2004-02-09 16:00:46  No: 111737  IP: [192.*.*.*]

回答ありがとうございます。
では、RS232ーUSB変換ケーブルをポートに差し込んだ時の、ポート番号を知りたいのですが、デバイスマネージャーのポートを読み込んで処理することも出来ませんか?

編集 削除
岡田 之仁  2004-02-09 17:21:28  No: 111738  IP: [192.*.*.*]

USBに挿したRS-232C変換アダプタに割り当てられたCOMポート
と言うことであれば・・・

    Dim Serial As SWbemObject
    Dim SerialSet As SWbemObjectSet
    Dim Locator As SWbemLocator
    Dim Service As SWbemServices
    
    Set Locator = New WbemScripting.SWbemLocator
    Set Service = Locator.ConnectServer
    
    Set SerialSet = Service.ExecQuery("Select * From Win32_SerialPort")

    For Each Serial In SerialSet
        Debug.Print Serial.Description
        Debug.Print Serial.DeviceID
        Debug.Print Serial.PNPDeviceID
    Next
    
※  参照設定で、Microsoft WMI Scripting V1.x Library
    をチェックして下さい。

    WMI関係をインストールしていない場合は・・・

    Dim Serial As Object
    Dim SerialSet As Object
    Dim objWMIService As Object
    Dim strComputer As String
    
    strComputer = "."
    
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set SerialSet = objWMIService.ExecQuery("Select * from Win32_SerialPort")
    
    For Each Serial In SerialSet
        Debug.Print Serial.Description
        Debug.Print Serial.DeviceID
        Debug.Print Serial.PNPDeviceID
    Next
    
で、情報は取れます。

●  ここで、Win32_SerialPort でヘルプ等から検索して頂きます
    と、中身の他の情報が解ります。

    通常、マシンの設定変更をしていない場合、COM1・COM2は本体
    なので、それ以降が、増設になります。

    ただし、マシンやOSによっては、COM3・COM4が予約になって
    おり、増設が、COM5からの場合もあるのでご注意下さい。

●  取得された情報からUSB経由でのアダプタであろうと、認識
    するしかありませんが・・・

ご検討下さい。

以上。

編集 削除
すえ太朗  2004-02-10 08:21:31  No: 111739  IP: [192.*.*.*]

ありがとうございました。
希望通りに動作しました。

編集 削除