none
如何取得連接埠的裝置名稱 RRS feed

  • 問題

  • VS2008 & WINXPSP3

    各位大大

    想請問該如何取的裝置管理員中連接埠(COM 和 LPT)

    中的完整的名稱及其中內容之裝置名稱及製造商

    原本小弟我利用My.Computer.Ports.SerialPortNames只能取的目前有哪些COM

    但是目前遇到一個離奇現象,裝置管理員中明明就只有一個COM PORT

    但是卻取得數個,某幾個COM PORT 一傳送指令(確認是不是我要控制的裝置)就卡住

    所以小弟才想詢問看看是否有辦法取得,這樣我可以更方便判斷是否為需要控制的硬體

    像裝置管理員中顯示 BTPort(COM10)<==小弟就是想取得這個名稱

    和他內容中的裝置名稱及製造商

    不知道是否有辦法取得

    再次麻煩各位大大

    2010年7月14日 上午 10:44

解答

所有回覆

  • Hi!

    試著從登錄檔 HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM 取得,參考

    Getting wrong serial-port names from bluetoothdevice


    歡迎參觀我的Blog.NET菜鳥自救會
    微軟MVP與點部落之友經驗交流見面會
    • 已標示為解答 動不了 2010年7月15日 上午 03:07
    2010年7月14日 下午 12:09
    版主
  • 謝謝大大

    小弟測試成功了

    程式碼如下

    引用Imports Microsoft.Win32

        Dim myRegistry As RegistryKey = Registry.LocalMachine.OpenSubKey("Hardware\DeviceMap\SerialComm")
        For Each valuename As String In myRegistry.GetValueNames()
          If TypeOf myRegistry.GetValue(valuename) Is [String] Then
            If valuename.Contains("這裡為硬體裝置的代碼(每家代碼都不一樣,不過都大該是代碼+流水號)") Then
              .....
            End If
          End If
        Next
    
    給需要的大大們也參考一下
    2010年7月15日 上午 03:07
  • 您好:

    我想問一個進階的問題,可不可知道,藍芽裝置名稱和所屬的COMPORT號碼?

    我現在就卡在這裡。我想讓使用者可以自動連線,不用選COMPORT。還請幫忙。

     If
     valuename.Contains("BthModem"
    ) Then
    
       .....
    End If
    2011年3月15日 下午 01:07
  • 您好:

    我想問一個進階的問題,可不可知道,藍芽裝置名稱和所屬的COMPORT號碼?

    我現在就卡在這裡。我想讓使用者可以自動連線,不用選COMPORT。還請幫忙。

     If
     valuename.Contains("BthModem"
    ) Then
    
      .....
    End If

    最笨的方式會不會是 透過 動不了 大大找到的方式

    把所以掃出來的Port快速的送命令給他 有回正確命令的

    應該是您要得Comport??

    2011年3月15日 下午 02:45
  • 使用 WMI ?

    Ex. Select * from Win32_SerialPort

    Availability Binary Capabilities CapabilityDescriptions Caption ConfigManagerErrorCode ConfigManagerUserConfig CreationClassName Description DeviceID ErrorCleared ErrorDescription InstallDate LastErrorCode MaxBaudRate MaximumInputBufferSize MaximumOutputBufferSize MaxNumberControlled Name OSAutoDiscovered PNPDeviceID PowerManagementCapabilities PowerManagementSupported ProtocolSupported ProviderType SettableBaudRate SettableDataBits SettableFlowControl SettableParity SettableParityCheck SettableRLSD SettableStopBits Status StatusInfo Supports16BitMode SupportsDTRDSR SupportsElapsedTimeouts SupportsIntTimeouts SupportsParityCheck SupportsRLSD SupportsRTSCTS SupportsSpecialCharacters SupportsXOnXOff SupportsXOnXOffSet SystemCreationClassName SystemName TimeOfLastReset
    2 True     通訊連接埠 (COM1) 0 False Win32_SerialPort 通訊連接埠 COM1         115200 0 0   通訊連接埠 (COM1) True ACPI\PNP0501\1
    0 UShort()
    0 1
    False   RS232 Serial Port True True True True True True True OK 3 False True True True True True True False True True Win32_ComputerSystem 電腦名  

     

     

     


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年3月15日 下午 04:13
  • 感覺這個方法可行喔,可惜要搭配硬體,期待有更好的方法,不過謝啦
    2011年3月16日 上午 05:31
  • 為什麼我看到大大的回覆是亂碼?

    可以請大大整理一下?感謝喔。

    2011年3月16日 上午 05:33
  • 為什麼我看到大大的回覆是亂碼?

    可以請大大整理一下?感謝喔。

    關鍵字就是 Win32_SerialPort , MSDN就有說明了

    Win32_SerialPort Class

    2011年3月16日 上午 06:52