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:
| procedure SetWMIProperty(wmiHost, wmiClass, wmiProperty, wmiMethod : string); var Locator: ISWbemLocator; var Services: ISWbemServices; var SObject: ISWbemObject; var ObjSet: ISWbemObjectSet; var SMeth: ISWbemMethod; var SProp: ISWbemProperty; var Enum: IEnumVariant; var Value: Cardinal; var TempObj: OleVariant; begin try Locator := CoSWbemLocator.Create; Services := Locator.ConnectServer('', 'root\cimv2', '', '', '','', 0, nil); ObjSet := Services.ExecQuery('SELECT * FROM '+wmiClass, 'WQL', wbemFlagReturnImmediately and wbemFlagForwardOnly , nil); Enum := (ObjSet._NewEnum) as IEnumVariant; while (Enum.Next(1, TempObj, Value) = S_OK) do begin SObject := IUnknown(tempObj) as ISWBemObject; SMeth := SObject.Methods_.Item(wmiMethod, 0); SProp := sMeth.InParameters.GetObjectText_(0); SProp.Set_Value(???); end; except on exception do MessageDLG('FEHLER',mtError,[mbOK],0); end; end; |