→ hirabbitt:好 感謝 05/11 08:08
從網路上找到的方法1
Set obj =
GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set items = obj.ExecQuery("Select * from Win32_SerialPort")
For Each item In items
//item.DeviceID 就是要找的port
Next
但是我以這種方式去做
好像只能找到com1和com2
另外接上去的com6並沒有出現
而且
我看不懂obj和items那邊在做什麼QQ
========================================
又找了方法2
只是把items的語法換掉而已
變成
Set items =
obj.ExecQuery("Select * from Win32_PnPEntity where Name like %(com%)%")
結果跑出Automation Error
我把where後面的語句刪掉後
Set items = obj.ExecQuery("Select * from Win32_PnPEntity")
雖然沒有出錯
但是跑出一堆看不懂的port
像是ROOT\ACPI_HAL\0000等等
而且也沒有我要的com6
==========================================
然後找了方法3
是生一個MSComm物件
然後用for一個一個port去試能不能開啟
這方法終於成功的找到我的com6
可是感覺有點笨?
===========================================
想請問
是不是沒有其他方式了?
謝謝
--
◤ __ \__◣ ◢◤◢◤ ψhirabbitt
◢ ◤ ◢███◣ ◢███◣
和妳的約定 █████ █████ 不變心的約定
██●█● █▇███
是變心的約定 ██╱╲ ●◥█████◣● 是我和自己的約定
◥╱█╱╱ ● ◥████ ˇ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.13.127.91
※ 編輯: hirabbitt 來自: 163.13.127.91 (05/10 14:30)