`

通过注册表获取当前所有串口号

 
阅读更多

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons,Registry;


type
TIntArray=Array of Integer;

 

function TForm1.GetComPorts:TIntArray;
var
reg:TRegistry; // 注: 要引用Registry单元
Namelst:TStrings;
i:integer;
str:AnsiString;
ComPorts:TIntArray;
begin
Namelst:=TStringList.Create;
reg:=TRegistry.Create;
reg.RootKey :=HKEY_LOCAL_MACHINE;
reg.OpenKey('HARDWARE/DEVICEMAP/SERIALCOMM',true);
reg.GetValueNames(Namelst);
SetLength(ComPorts,Namelst.Count);

for i := 0 to Namelst.Count -1 do
begin
str:=reg.ReadString(Namelst[i]);
ComPorts[i]:=StrToInt(Copy(str,4,Length(str)));
end;
reg.CloseKey;
reg.Free;
Namelst.Free;
Result:=ComPorts;


end;

分享到:
评论

相关推荐

    VS/C++自动查询/搜索串口号

    本文将深入探讨如何在VS/C++环境中实现自动查询和搜索串口号,以及如何利用注册表信息来获取串口的相关设置。 首先,串口在Windows操作系统中是以设备驱动程序的形式存在,它们的配置信息存储在注册表中。因此,要...

    VC,MFC获取现有的串口列表

    通过这些函数,开发者可以遍历所有可用的串口,并获取每个串口的详细信息,如设备名称(COM1, COM2等)。 `main.cpp`是程序的主入口点,它调用了`enumser`模块的接口,展示如何在实际应用中使用获取串口列表的功能...

    自动获取当前可用的COM口数目的MFC程序

    通过这种方式,开发人员可以快速构建一个用户友好的界面,帮助用户选择正确的串口进行通信,提高工作效率。在实际应用中,这样的程序可以作为其他串口通信软件的基础,或者作为嵌入式系统调试工具的一部分。

    VC获取电脑上所有可以用的串口号代码

    本文将详细介绍如何使用 Visual C++ (VC++) 编写代码来获取当前计算机上所有可用的串口号。 #### 二、基础知识 1. **串口**: 串行通信接口的一种,通常用于计算机与外设之间的数据传输。 2. **注册表**: Windows ...

    自动识别串口 自动识别串口 vc

    自动识别串口主要是通过查询注册表来获取当前系统中所有可用的串行端口名称。Windows操作系统将这些信息存储在注册表的特定键值下,例如`HARDWARE\DEVICEMAP\SERIALCOMM`。通过读取这些键值,可以获取到一系列的串...

    BCB6.0 自动识别USB串口设备

    总的来说,实现BCB6.0环境下自动识别USB串口设备的关键在于监听WM_DEVICECHANGE消息,查询注册表获取串口号,并在事件发生时通知用户。这个过程涉及了Windows编程、设备驱动接口以及BCB6.0中的事件处理和组件使用。...

    C#串口操作实际应用开发详解.pdf

    // 获取当前缓冲区内的字节数 if (BufferDataNumStart == 0) return; // 如果缓冲区为空,则直接返回 while (true) { System.Threading.Thread.Sleep(10); // 为了防止死循环,适当延迟 BufferDataNumEnd = ...

    利用最新的CSerial类开发串口工具

    在某些情况下,应用程序可能无法从注册表中正确读取可用的串口号。修复这个bug可能涉及: - **正确访问注册表键**:确保使用正确的注册表路径(如`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial`...

    MSComm32 安装版、注册版

    - `CommPort`: 设置串口号,例如Com1、Com2等。 - `Settings`: 设置波特率、数据位、停止位、校验位等串口参数。 - `InputMode`: 选择输入模式,如文本模式或二进制模式。 - `RThreshold`: 设置接收缓冲区达到指定...

    microsoft的mscomm控件

    9. **GetCommState**:获取当前串口的状态。 **三、注册与使用MSComm控件** 在Windows系统中,MSComm32.ocx是MSComm控件的动态链接库文件,而MSCOMM32.reg则是注册控件的注册表文件。在开发环境中,需要先将MSComm...

    步科Kinco-K系列PLC编程软件V1.6.0.0.rar

     【PC机通信设置】对话框中的【COM口】列表为空KincoBuilder通过读取注册表中的硬件信息来获取本机可用的COM口。在早期的版本中, 必须赋予KincoBuilder以管理员身份来运行的权限, 否则就会显示一个空的串口列表...

    cmd下读取终端端口.txt

    1. **权限问题**:执行上述命令时,需要确保当前用户具有足够的权限访问注册表。如果遇到权限不足的问题,可以尝试以管理员身份运行CMD。 2. **安全风险**:修改或读取注册表前,请务必备份相关注册表键值,以防意外...

    网络程序设计课程讲义(下半部)

    - `lpszProxyBypass`: 不通过代理直接连接的主机名或IP地址列表,未提供时从系统注册表中获取。 - `dwFlags`: 配置选项,如异步操作、缓冲策略等。 - **InternetSetOption**: 设置句柄相关的选项,如连接超时时间...

    计算机网络面试题

    - 可以通过命令提示符执行net services或net start命令来查看系统当前正在运行的服务。 12. 其他常用命令: - taskkill:结束指定进程。 - tasklist:显示所有运行的进程。 - net view:列出网络中的计算机。 ...

Global site tag (gtag.js) - Google Analytics