摘要:[VB6][VB.NET][C#] 使用WMI類別、My類別及MSComm ActiveX,取得電腦可用的Serial Port(Com Port)
市面上Serial Port介面的產品雖說已經越來越少了,但是還是相當多的人會需要用到它,由其是工控界的朋友。
以下將使用WMI及ActiveX,來取得電腦中的Serial Port,若是要其他語言的用法請用google搜尋一下
1.VB6利用WMI,Win32_SerialPort












2.VB2005利用WMI,Win32_SerialPort










End Class
資料出處:http://msdn.microsoft.com/en-us/library/aa394414(VS.85).aspx
3.VB6利用WMI,Win32_SerialPortConfiguration

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

資料出處:http://msdn.microsoft.com/en-us/library/aa394413(VS.85).aspx
4.C#利用.Net Framework 2.0 System.Management 和Win32_SerialPortConfiguration,要使用System.Management時,請在於專案→加入參考→System.Management

















private void button1_Click(object sender, EventArgs e)




foreach (ManagementObject mo in moc)



MessageBox.Show (mo["Name"].ToString());





資料出處:http://msdn.microsoft.com/en-us/library/system.management.aspx
使用USB轉Serial Port 似乎無法用WMI偵測到
5.使用My.Computer.Ports.SerialPortNames







資料出處:http://msdn.microsoft.com/zh-tw/library/e4560dx9%28VS.80%29.aspx
但使用USB轉Serial Port 用My類別可以偵測到,語法也簡潔可愛多了
6.VB6使用微軟的MSComm ActiveX + 自定函數




On Error GoTo Err_SearchPort:

mc.CommPort = StartPortNumber


Err_SearchPort:

'判斷是否發生錯誤

'若沒發生錯誤,則 Port 開啟正常 ( 代表 Serial Port 可用 )



'開啟成功後,要記得關掉....


ReallyPortNumber = ReallyPortNumber + 1


'當尋找 Port 大於 EndPortNumber 時離開此函式


'遞回


資料出處:http://wukm.blogspot.com/2007/05/com-port.html
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET