我將所有的portName跑出來但是都沒東西
string[] ports = SerialPort.GetPortNames();
foreach (string s in ports)
Console.WriteLine(s);
後來小弟我去看了一下裝置管理員比對一下別人的裝置管理員
1.要嘛就是USB名稱的結尾有"(COM1)"
2.不然就是有"序列埠(com & lpt)"
是不是有什麼可解的,否則小弟我需要用SerialPort這個元件去拿Barcode的讀寫.
你需要找軟體USB轉RS232軟體
但是要測試看看是否能成功。
用別的抓法試試,PC跟NB看起來就是有差...,有找到其他方法參考看看
謝謝
這個我已經有試過了
只要是Serial類就一定只認"ComX"
但似乎能被USB類的抓到(如下)
問題是 我要用SerialPort這個元件阿XD
var searcher = new ManagementObjectSearcher(@"Select * From Win32_USBHub");
foreach (ManagementObject port in searcher.Get())
{
// show the service
ComPort c = new ComPort();
c.name = port.GetPropertyValue("DeviceID").ToString();
c.description = port.GetPropertyValue("Caption").ToString();
ports.Add(c);
}
如果是USB的條碼機,你開了記事本之後刷條碼,內容會直接出現在上面的話,這種其實是HID,功能和鍵盤差不多。這種的刷東西會受輸入法影響,所以要用時記得調整英數模式(Caps,大小寫也有差)
如果是SerialPort的條碼機,必須插到PC後產生一個COM Port的號碼,並有一個專屬的程式開了Port來接收
你的問題應該是要找一隻有RS232輸出的條碼機,有些條碼機可能可以用參數設定是哪種工作模式,比如說設定後會產生Virtual COM Port給你用