1,184
社区成员
发帖
与我相关
我的任务
分享
uses
ActiveX,ComObj;
procedure TForm1.Button1Click(Sender: TObject);
var
Locator,RET,Tmp: OleVariant;
Enum: IEnumVariant;
Value: Cardinal;
begin;
memo1.Clear;
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
memo1.Lines.Add(Tmp.Name+' '+Tmp.DeviceID+' '+Tmp.CreationClassName+' '+Tmp.PNPDeviceID+' '+Tmp.ProviderType);
end;