C++builder 如何获取端口号

selffight 2014-04-17 05:51:51
如题,我的上位机和下位机通讯程序,只有在选对端口号的时候才运行正常,否则会弹出“Debugger Exception Notification“对话框,请问大神能不能动态的获取端口号呢?或者是如何对这个异常进行处理,不让他弹出对话框,即当有触发按键事件的时候,使”MSComm1->CommPort=**“不触发异常事件。串口通信我用的是MSComm控件。

...全文
226 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cczlp 2014-04-18
  • 打赏
  • 举报
回复
用TMS Async32串口控件, 这个最好用, 你需要的功能也有
selffight 2014-04-18
  • 打赏
  • 举报
回复
引用 1 楼 ccrun 的回复:
看到你的代码片段,当时我就震惊了。抛开效率的问题不说了,就说你的需求,可以考虑遍历端口,用try...catch捕获错误。
,我没怎么写过代码,第一次写,还请版主多指教,嘿嘿
洪武2014 2014-04-18
  • 打赏
  • 举报
回复
TStringList *tmp = new TStringList; //自動取得COM Port的數量 TRegistry *reg = new TRegistry; reg->RootKey = HKEY_LOCAL_MACHINE; if(reg->OpenKey("\\HARDWARE\\DEVICEMAP\\SERIALCOMM",false)) { reg->GetValueNames(tmp); for(int i=0;i<tmp->Count;i++) { AnsiString asCOM = reg->ReadString(tmp->Strings[i])+" 已连接...."; Memo1->Lines->Add(asCOM); } reg->CloseKey(); } else Memo1->Lines->Add("没有COM口连接"); delete reg; delete tmp;
  • 打赏
  • 举报
回复
从注册表中读取串口号,修改一下就能应用到你的程序 http://blog.const.net.cn/a/772.htm
  • 打赏
  • 举报
回复
你在电脑的设备管理器中看端口
ccrun.com 2014-04-17
  • 打赏
  • 举报
回复
看到你的代码片段,当时我就震惊了。抛开效率的问题不说了,就说你的需求,可以考虑遍历端口,用try...catch捕获错误。
含有全部工程文件,使用C++ Builder 6.0完成开发,可重新编译运行。创作权归曹润泽所有,使用者不可用于商业目的,否者后果自负。 本软件功能: 上层的应用软件的模块主要有:初始化模块、用户设置模块、COM串行通信数据采集模块、数据矫正模块、数据绘图模块、数据存储模块、网络传输模块、功能整合模块等。其中网络传输模块又可以根据工作模式分为服务端网络传输模块和客户端网络传输模块。 用户设置模块:主要是通过用户设置设置窗口中的信息来完成软件的设置,这些可以设置的变量都非常重要,包括基本设置:采样频率设置、COM端口选择、警告限设置(是否使用警戒限、高警戒限的大小、低警戒限的大小)、矫正表设置(是否使用矫正表、选择矫正表);绘图设置:显示点数设置、曲线宽度设置、曲线颜色设置(高警戒曲线的颜色、正常时曲线颜色、低警戒曲线的颜色设置);网络设置:是否使用网络传输、网络基本设置(服务端选择、客户端选择、端口号设置、服务端IP设置)。 COM串行通信数据采集模块:用于从串行口中读取数据。 本系统使用专门用于RS-232串行通信通信控制的控件TComm控件来完成COM通信。 数据矫正模块,顾名思义,是用于对数据进行矫正的。若需要矫正数据,必须使用矫正表,矫正表实际上只是个用户可自定义的文本文件,但在编写矫正表文件时必须按照一定规则进行编写。 数据绘图模块:对于采集数据的实时绘图是通过Borland C++ Builder 6.0自带的功能强大的TChart控件来实现。 数据存储模块:该模块除了使用了编译器所提供的几个基本数据类型之外,基本上是使用纯C++编写(不使用编译器的控件)。数据存储并未使用数据库存储,而是使用文本文件的方式对所有采集到的时间进行存储,存储时要先把采样信息写入到数据文件的头部,包括创建时间、采样起始时间、采样持续时间、采样结束时间、采样频率、采样数等等信息,之后就是所采集的数据,采样数据包括数值和采集的该点所对应的时间,以及该点是否被警告(过低用!Low表示、正常用-表示、过高用!High表示)。 网络传输模块:网络传输模块是本数据采集系统比较新颖的模块,可以使用互联网进行速率较低的数据传输,考虑到网络传输的延迟,故设计时设置的采样速率比较低。网络传输模块实际上是使用Socket编程实现的,在Borland C++ Builder中有封装好的用于网络通信的控件:TServerSocket和TClientSocket。
delphi / c++ builder 10.1 Berlin 安装Intraweb 14.1.5,仅供学习研究使用 说明:仅供学习研究使用 安装程序太大无法上传,请先到http://www.atozed.com下载iw14.1.5.exe 本人用的是Embarcadero RAD Studio 10.1 Berlin up2 1. 打开IDE,Component / Install Packages...,选择旧版本Intrawebxxxx.bpl,Remove. 2.用IWBundledRemovalTool工具将旧版本文件删除(如果没有此工具可从网上下载或先随便安装一个版本,把此工具复制出来)。 3.如果需要用bcb开发由进行这一步,如只需要用delphi开发则可跳过这步, 将C:\Program Files (x86)\Embarcadero\Studio\18.0\include\windows\vcl目录下IW*.hpp删除。 4.如果需要用bcb开发由进行这一步,如只需要用delphi开发则可跳过这步,本人前几次安装都没有成功, 后面增加了这步,不知道此步是否必须, 将C:\Program Files (x86)\Embarcadero\Studio\18.0\include\windows\vcl目录下, 从InAntiFreezeBase.hpp开始选中到InYarn.hpp,然后将这些文件删除。 5.运行iw14.1.5.exe安装,安装时输入如下LicenseKey(这个号也是网上找到的,由于找了一天也不记得在哪找到的了,感谢作者提供): +0010AAIACIABCAACABCACGABCABAAAGACGABCAAGABEAAEABEABIABEAAGABEAAIABCAACABCACEABEABGABEAAAAAAACGAAAACAAAIAAGABCADAABCACGABEAAAABCAACABCACIABEABIAAGACGAAIAACABEAAIABCADAABEACAABCABAABCAAIAAEAAAABAAAGABCADAABCABCABEAAIABEABEABCAACABEAAEABCABAAAAACGAAAACAAAIAAIABCABAABEABCABCABAABCACEABCADAABEAAAABCABAABEAAEAAGACGABCAAGABEAAEABEABIABEAAGABEAAIABCAACABCACEABEABGABEAAAAAAACGAAAACAAAIABAABEABGABEAAAABCABIABEAAEABCAACABEAAIABCABIABCADAABCACIAAGACGAAGABAAAGABGAAGABCAAGAAAAAGABGAAAACGAAAACAAAIABAABCAAIABCABIABEAAIABCABIABCADAABCACIAAGACGAAIABAAAIACIABAAAIAAAACGAAAACAABAAAGABCABAABEAAEABCABIABCAACABCACEAAIACIABCADAAAGACGAAGAAEAAGAAAAAGAACAAGABCAAGABAAAGAAAAAGABCAAGABGAAGABGAAAACGAAAACAAAIABAABCACGABCAACABCABIABCACEAAGACGAAAACGAAAACAAAIABGABCAACABEAAGABCABGAAGACGAAAACGAAAACAAAHAEDAAFACI 6.安装完成后如果选中License Registration则同样输入上面的LicenseKey。 7.先启动Delphi 10.1 Berlin IDE,Tools/Options,将iw14.1.5.exe安装目录(本人安装到C:\Program Files (x86)\IntraWeb XIV)下的LibD10_1W32、LibD10_1W64、Source三个目录添加到Library Path和Browsing Path。 8.随便创建一个Intraweb应用,选择win32平台,然后运行,报错后修改IWLicenseKey.pas: 将SetLicenseKey(xxxxxxxxxxxxxxxxxx改为: SetLicenseKey( '+0010AAIACIABCAACABCACGABCABAAAGACGABCAAGABEAAEAB'+ 'EABIABEAAGABEAAIABCAACABCACEABEABGABEAAAAAAACGAAA'+ 'ACAAAIAAGABCADAABCACGABEAAAABCAACABCACIABEABIAAGA'+
普鲁托安全Web应用专家(版本号V1.9.9.2发布)说明 定位:轻量,简便,安全,绿色,资源 Web系统文件为一个单一的小文件,轻量可靠 一键开关网站,安全简便 没有任何弹出广告和不良信息,绿色、环保、洁净 静态网页支持 两个.jsp固定网页的支持 完成了MP3和MP4播放的静态网页的制作 设置了维护模式的4个固定通道 V1.9: 动态网页 无限制的网页制作与配置,网页扩展名为.video 伪jsp的解析,兼容以前的两个固定.jsp网页的支持 统一了调试环境与生产环境,代码与调试路劲为pluto\code\Win64\Debug,生产环境在\pluto下,运行环境包括根目录(sRootPath),template、log。 凡是调用运行文件,都用sRootPath+。程序自动判断是生产环境还是调试环境。 动态配置option.config维护模式以及专用通道pass1-pass4 动态模板文件.html与动态网页文件.video 支持.pptx的中文名下载 绿色: 免安装,单独的主程序,简洁的生产环境,无弹出广告,页面干净绿色环保 安全: 监视器实施监控:来访IP监控,来访时间监控,Get文件监控 分为绿色通过和红色报警 智能: 自动寻找可用的Web端口 自动判断文件是否存在,对文件进行分类判断和转移 自动判断是调试环境还是生成环境,使得调试环境和生产环境统一,调试更方便 V1.6.2版 普鲁托安全Web应用专家是基于HttpServer中间件,利用C++Builder制作的一个Web服务器。 思路 能不能让这个服务器支持jsp和PHP呢?原理上是可以的,用fastcgi进行,默认情况下,php是9000端口,JSP的tomcat是8080端口,通过c/s模式进行。 但是,这就没有发掘C++Builder的作用,不如直接搭建NginX,Apache,lighttpd+tomcat。通过实践,在Web服务器上直接利用C++Builder,可以支持动态网页。而且,还可以执行 .jsp,.php,.do等任意类型的动态网页。 Bug记录 V1.9.4 1.修复get /favicon.ico的问题。在维护模式时,重复出现"get /favicon.ico拒绝!"信息。 处理方法:单独放行。 制作favicon.ico放到www目录下。 注意:pluto\目录下的favicon.ico是64×64大小的,在pluto\www\下的是32×32大小的。 2.纠正了一个错误链接,访问/v/index.html,上有链接"视频",错误链接到"127.0.0.1"的问题。 V1.9.5-6 增加了定时日志功能。保存监视日志,并清空监视器。暂时设定为:每4小时进行一次。 方法1:Timer1->Inerval=14400000;//4*60*60*1000。调试时,没有报错。但据有关资料说,不能超过65535,这是int的值。 不知道对与错。 将Interval放到配置文件中,自主设定。头文件定义:long iInterval; 64位程序中调试通过。 V1.9.7 post与get方法的测试 V1.9.8.00 处理转向。当访问指定目录,该目录下没有index.html文件时, 转向到/h/index.html V1.9.8.11616 伪静态处理,伪.html,伪.jsp,伪.php的支持和处理 脚本文件.vsp对多种模板和空置模板的判断,以及对VideoPlay模板的调用。 增加了作者页,启动时www目录不在默认程序下的判断和提示窗口。 V1.9.9.2(2020-5-24) 调整了辅助文件,修改了初始化信息,主要是匿名处理,准备发布;将监视信息细为:已拒绝,已转向,伪处理,不存在,找不到。

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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