вызов метода класса в WMI
От: wilwill  
Дата: 03.01.03 20:57
Оценка:
Никак не могу удачно вызвать метод. Вызов последней функции возвращает ошибку WBEM_E_INVALID_METHOD_PARAMETERS. Ничего не понимаю, вроде делаю все по мануалу (MSDN), но тем не менее не выходит...

var
    Locator: IWbemLocator;
    SrvcInst: IWbemServices ;
    inClass, outClass, inInst, outInst, OSClass: IWbemClassObject;
    resInst, resInst2: IWbemCallResult;
    a:OleVariant;
begin
CoInitialize(nil);
CoInitializeSecurity(nil,-1,nil,nil,RPC_C_AUTHN_LEVEL_CONNECT,
    RPC_C_IMP_LEVEL_IMPERSONATE,nil,0,0);
CoCreateInstance(CLSID_WbemLocator,nil,CLSCTX_ALL,
    IID_IWbemLocator,Locator);

Locator.ConnectServer('root\cimv2','','',widechar(nil),0,
    widechar(nil),nil,SrvcInst);

SrvcInst.GetObject('Win32_OperatingSystem',0,nil,OSClass,resInst);
OSClass.GetMethod('Win32Shutdown',0,inClass,outClass);

inClass.SpawnInstance(0,inInst);
a:=1;
inInst.Put('Flags',0,@a,CIM_SINT32);

ShowMessage(IntToHex(SrvcInst.ExecMethod('Win32_OperatingSystem',
    'Win32Shutdown',0,nil,inInst,outInst,resInst2),8));
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.