VB6 之 MSComm 控制項元件有一個限制,就是埠號之屬性不能超過 16。對於 USB 轉換之 SERIAL Port,或是多埠卡上之 CommPort,若是埠號是在 17 以上,可能就束手無策。
不過,我們可以從修改 mscomm32.ocx 的內碼值著手。先去 \WINDOOWS\SYSTEM32 複製一份 mscomm32.ocx 到桌面上,用十六位元編輯器 ( Hex-Editor,如:UltraEdit 之類的程式 ) 開啟它,再去找 3D 10 00 這三個十六進制之「連續」位元,其中的 10 ,在十進制之值就是 16 (最大之 PortNumber=16)。我們要把限制改為 99 ,所以要把 3D 10 00 中間的 10 (十六進制) 修改為 63 (十六進制);變更後,就成為 3D 63 00 ,然後再存檔、更新即可。
使用時,先將原有的 C:\windows\system32\mscomm32.ocx 更名為 mscomm32.ocx_,再把變更過的 OCX 檔移過去,就大功告成。 |