请问怎么自动获取串口号?使用的是pcomm控件

jude_happy 2010-02-03 09:31:36
串口通讯中使用了pcomm控件,现在有个问题,我是使用了232转USB装置,这样接入的串口就是随机的,怎么样能在程序里自动读取串口号呢?
...全文
457 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cumtiger 2010-04-12
  • 打赏
  • 举报
回复
收藏了
ccrun.com 2010-02-03
  • 打赏
  • 举报
回复
用SetupAPI枚举端口,根据属性判断是否为你的USB通讯端口。
或者从注册表枚举所有端口后,依次尝试通讯(写一个指令并读取回应看是否成功)
jude_happy 2010-02-03
  • 打赏
  • 举报
回复
procedure TFrm_Main.FormCreate(Sender: TObject);
var
reg: TRegistry;
ts: TStrings;
i: integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('hardware\DEVICEMAP\SERIALCOMM',
false);
ts := TStringList.Create;
reg.GetValueNames(ts);
ComboBox1.Clear;
for i := 0 to ts.Count - 1 do begin
ComboBox1.Items.Add(reg.ReadString(ts.Strings[i]));
end;
ts.Free;
reg.CloseKey;
reg.free;
ComboBox1.ItemIndex := 0;
end;

读出来的结果是com2 com3 com4 com5 com6
jude_happy 2010-02-03
  • 打赏
  • 举报
回复
我试了一下,这个过程把所有的串口号都读出来了,我现在要自动获取那个232-USB设备的串口号,并且把这个号赋给程序中的portn。我要从这个口通信,调用sio_open之类的函数。请问这个功能怎么实现呢。

我现在在硬件管理器里看见的USB设备的串口号是com6,这时我要让portn=6;

请问调用你这个过程怎么实现呢?
yct0605 2010-02-03
  • 打赏
  • 举报
回复
可以通过注册表来获取计算机的串口号

uses Registry;

procedure TFrm_Main.FormCreate(Sender: TObject);
var
reg: TRegistry;
ts: TStrings;
i: integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('hardware\DEVICEMAP\SERIALCOMM',
false);
ts := TStringList.Create;
reg.GetValueNames(ts);
ComboBox1.Clear;
for i := 0 to ts.Count - 1 do begin
ComboBox1.Items.Add(reg.ReadString(ts.Strings[i]));
end;
ts.Free;
reg.CloseKey;
reg.free;
ComboBox1.ItemIndex := 0;
end;
MOXA PComm Pro Windows 2000、Windows NT,Windows 95/98下的专业串口应用软件开发工具包 大多软件开发者在使用Microsoft的Win32 COMM API时感到非常繁琐。因为 Win32 COMM API的函数库比较少,而且语法十分复杂,所以在Windows NT、 Windows 95/98下猹发串口应用软件会感到相当困难。 MOXA PComm Pro提供您一个理想的解决方案,不论您使用哪一种多串口卡,如 标准的COM、Digi、 Equinox、Moxa或者其它品牌,PComm Pro都是您最合适的 开发工具,它能真正帮助您解决困扰。 可快速帮助您完成串口通信应用开发 可协助您排除两台设备之间的通信问题 可评测串口的效能状况 MOXA PComm Pro提供专为异步通信设计的API函数库,没有Microsoft Win32复杂难用的问题,大大节 省了开发时间和成本。 另外,MOXA PComm Pro还提供许多功能强大的辅助工具,如数据撷取、效能评测等,帮助您迅速排除 在应用软件开发时串口通信所发生的问题。 容易开发 MOXA PComm Pro提供专为串口通信而设计的50多个API函数,支持VB、C/C++和Delphi等多种编程 语言,在功能和应用上都不会像Microsoft Win32 COMM API那样让开发者感到困扰。 MOXA PComm Pro还支持ZModem、YModem、XModem、Kermit和ASCII等多种档案传输协议,使得 档案的上载和下载程序都变得比以往来得轻松。 容易排难 MOXA PComm Pro的数据撷取功能和PC机上的数据撷取功能相似,它利用了2个标准串口,让您在 利用RS-232的传输时通过时间标记来设置参数、获取通信数据和监控信状态等,串口的传输速 率可高达921.6K bps。您也可以将各式各样的数据和状态存到硬盘上以备日后分析。只要通过一 条电缆的连接,线上数据监控即可通畅无阻。 高兼容性 MOXA PComm Pro不仅支持标准的串口,同时与Digi、Equinox、Moxa等支持Microsoft Win32 COMM API的多串口卡兼容。 特点 提供简单易用的API(超过50个函数) 支持ZModem、YModem、XModem、Kermit和ASCII等 档案传输协议 支持VB、C/C++和Delphi界面,并提供范例程序 串口通信速率可达921.6K bps 可同时开启多个终端窗口(VT100,ANSI) 提供数据撷取功能以了解串口通信状态(附电缆线 ) 提供串口通信效能评测功能 与任何支持Win32 COMM API的标准串口兼容 免费升级 系统要求 与Intel微处理器兼容的PC Windows 2000,Windows NT(3.51/4.0)或Windows 95/98 操作系统 2.5MB的硬盘空间

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧