的WMI虽然我明白,我怎么连接到WMI并获得更多有需要的信息,我不明白什么是我们这个while循环(while oEnum.Next(1, FWbemObject, iValue) = 0 do
)需要什么?从How to get the installed video card (Delphi):访问德尔福
FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
FWbemObjectSet:= FWMIService.ExecQuery('SELECT Name,PNPDeviceID FROM Win32_VideoController','WQL',wbemFlagForwardOnly);
oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
while oEnum.Next(1, FWbemObject, iValue) = 0 do
begin
Writeln(Format('Name %s',[String(FWbemObject.Name)]));// String
Writeln(Format('PNPDeviceID %s',[String(FWbemObject.PNPDeviceID)]));// String
Writeln;
FWbemObject:=Unassigned;
end;
可能有多个视频卡。 –
和技术答案是什么?我的意思是为什么它= 0? –
我没有把它当作你的问题来解释。我把它理解为“为什么这个循环在这里?” –