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 如何从html格式的字符串中提取纯文本?

Delphi使程序的窗口出现在最前面并激活

Delphi中使用goo.gl(google的缩短url服务)api

Delphi concat 字符串函数

Delphi tstringlist 自带 split 用法

Delphi 图像文件加载到剪切板,再从剪切板绘制图像

Delphi 删除动态数组的指定元素

Delphi 中showmodal与show的区别

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



打赏

取消

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

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

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

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

评论

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