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 从 .lnk 文件获取真正路径的程序

Delphi 如何确定屏幕分辨率

Delphi 通过idhttp实现登录验证

Delphi 守护进程 杀死自己的进程再重新启动自己

Delphi 如何将字符串中的半角字符转换为全角字符

Delphi webbrowser1 保存文档为 .mht

Delphi 的内存操作函数(2): 给数组指针分配内存

Delphi 模拟按键的一些误解

Delphi mediaplayer1 设置音量

Delphi 随机指定范围的字符串函数

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



打赏

取消

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

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

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

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

评论

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