Delphi 串口查询所有COM口


本文整理自网络,侵删。

 

//检测串口
function ComPortAvailable(Port: Pchar): boolean;
var
  DeviceName: Array[0..80] of char;
  ComFile: THandle;
begin
  StrPCopy(DeviceName, Port);
  ComFile:= CreateFile(DeviceName, GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  Result:= ComFile <> INVALID_HANDLE_VALUE;
  CloseHandle(ComFile);
end;

var
  Locator,RET,Tmp: OleVariant;
  Enum: IEnumVariant;
  Value: Cardinal;
begin
  (************* 查询串口详细信息 ********)
  Locator := CreateOleObject('WbemScripting.SWbemLocator');
  Ret := Locator.ConnectServer('.', '', '', '').ExecQuery('SELECT * FROM Win32_SerialPort');
  Enum:= IUnknown(RET._NewEnum) as IEnumVariant;
  while (Enum.Next(1, Tmp, Value) = S_OK) do
    memorec.Lines.Add(Tmp.Name+' '+Tmp.DeviceID+' '+Tmp.CreationClassName+' '+Tmp.PNPDeviceID+' '+Tmp.ProviderType);
end;

相关阅读 >>

Delphi 启动程序隐藏主窗体

Delphi 动态修改显示器分辨率

Delphi memo1 字符串快速查找定位

Delphi snowflake一秒可生成500万id的分布式自增id算法―雪花算法

Delphi 10分钟10行代码开发app(Delphi 应用案例)

Delphi 传输文件例子的核心代码

Delphi 遍历某字段并插入到combobox

maskedit中掩码的含义及使用

Delphi执行js

Delphi的字符串与16进制的相互转换函数的汇编代码

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...