1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| procedure GetWin32_ProcessorInfo; const WbemUser =''; WbemPassword =''; WbemComputer ='localhost'; wbemFlagForwardOnly = $00000020; var FSWbemLocator : OLEVariant; FWMIService : OLEVariant; FWbemObjectSet: OLEVariant; FWbemObject : Variant; oEnum : IEnumvariant; i: Integer; begin; try try FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword); FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_Processor','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; i := 0; while oEnum.Next(1, FWbemObject, nil) = 0 do begin inc(i); LogMsg(' Processor '+IntToStr(i)+' Information:');
WriteVariant(' AddressWidth: '#9#9#9, FWbemObject.Properties_.Item('AddressWidth').Value); WriteVariant(' Caption: '#9#9#9#9, FWbemObject.Properties_.Item('Caption').Value); WriteVariant(' CurrentClockSpeed: '#9#9, FWbemObject.Properties_.Item('CurrentClockSpeed').Value); WriteVariant(' Description: '#9#9#9, FWbemObject.Properties_.Item('Description').Value); WriteVariant(' ExtClock: '#9#9#9, FWbemObject.Properties_.Item('ExtClock').Value); WriteVariant(' Family: '#9#9#9#9, FWbemObject.Properties_.Item('Family').Value); WriteVariant(' Manufacturer: '#9#9#9, FWbemObject.Properties_.Item('Manufacturer').Value); WriteVariant(' MaxClockSpeed: '#9#9#9, FWbemObject.Properties_.Item('MaxClockSpeed').Value); WriteVariant(' Name: '#9#9#9#9, FWbemObject.Properties_.Item('Name').Value); WriteVariant(' NumberOfCores: '#9#9#9, FWbemObject.Properties_.Item('NumberOfCores').Value); WriteVariant(' NumberOfLogicalProcessors: '#9, FWbemObject.Properties_.Item('NumberOfLogicalProcessors').Value); WriteVariant(' Version: '#9#9#9#9, FWbemObject.Properties_.Item('Version').Value); FWbemObject := Unassigned; end; finally oEnum := Unassigned; FWbemObjectSet := Unassigned; FWMIService := Unassigned; FSWbemLocator := Unassigned; end; except on E:EOleException do LogMsg(Format('EOleException %s %x', [E.Message,E.ErrorCode])); on E:Exception do LogMsg(E.Classname + ': ' + E.Message); end; end; |