Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.12.21;
Скачать: [xml.tar.bz2];

Вниз

код VBS конвертировать в Delphi   Найти похожие ветки 

 
allrussia ©   (2013-12-03 14:04) [0]

Есть следующий код:



Function GetSummaryInformation(settings, requestedInformation)
   dim query, objInParam, objOutParams, summaryInformation, requested
   
   set objInParam = managementService.Methods_("GetSummaryInformation").InParameters.SpawnInstance_( )

   objInParam.SettingData = settings
   objInParam.RequestedInformation = requestedInformation
   
   set objOutParams = managementService.ExecMethod_("GetSummaryInformation", objInParam)
   
   if objOutParams.ReturnValue = wmiSuccessful then
       GetSummaryInformation = true
       for each summaryInformation in objOutParams.SummaryInformation
       
          WriteLog "Virtual System Summary Information:"
          for each requested in requestedInformation
             select case requested
                 case 0:
                     WriteLog Format1("Name: {0}", summaryInformation.Name)
                 case 1:
                     WriteLog Format1("Element Name: {0}", summaryInformation.ElementName)
                 case 2:
                     WriteLog Format1("Creation Time: {0}", summaryInformation.CreationTime)
                 case 3:
                     WriteLog Format1("Notes: {0}", summaryInformation.Notes)
                 case 4:
                     WriteLog Format1("Number of Processors: {0}", summaryInformation.NumberofProcessors)
             end select
         next
     next
   else
       WriteLog Format1("GetSummaryInformation failed with ReturnValue: {0}", objOutParams.ReturnValue)
   end if

End Function


DELPHI: что удалось имплементировать



var
   wmiLocator: TSWbemLocator;
   wmiServices: ISWbemServices;
   wmiObjectSet: ISWbemObjectSet;
   wmiObject, wmiOutParams,wmiInParams,wmiInst: ISWbemObject;
   wmiProp: ISWbemProperty;
   ovVar,propValue: OleVariant;
   Enum: IEnumVariant;
   wmiMethod: SWbemMethod;
   Arg: string ;
   lwValue: LongWord;
   wmiProperty: SWbemProperty;
begin
   wmiLocator := TSWbemLocator.Create (Nil);
       wmiServices := wmiLocator.ConnectServer(".", "root\virtualization", ".", ".",
                                                                     "", "", 0, nil);
       Arg := "SELECT * FROM MSVM_VirtualSystemManagementService";
       wmiObjectSet := wmiServices.ExecQuery (Arg, "WQL",
                                                    wbemFlagReturnImmediately, nil) ;
       Enum := (wmiObjectSet._NewEnum) as IEnumVariant;

       if (Enum.Next (1, ovVar, lwValue) = S_OK) then
       begin

           wmiObject := IUnknown(ovVar) as SWBemObject;
           wmiMethod := wmiObject.Methods_.Item ("GetSummaryInformation", 0) ;
           wmiInParams := wmiMethod.InParameters;
           wmiInst := wmiInParams.SpawnInstance_(0) ;

Все: дальше затык. Нужно передать параметры
           wmiProperty := wmiInst.Properties_.Add("SettingData", ? , False, 0) ;

SettingData должно быть согласно документации Null

           wmiProperty := wmiInst.Properties_.Add("RequestedInformation", wbemCimtypeUint32, True, 0) ;

RequestedInformation должно быть согласно документации массив чисел 0,1,2,4 и тп.



ссылка на документацию
http://msdn.microsoft.com/en-us/library/cc160706%28v=vs.85%29.aspx


 
Сергей М. ©   (2013-12-03 17:27) [1]

А так ли уж обязательно нужно заниматься этим мазохизмом ?

Не проще ли запустить готовый VB-скрипт под управлением стандартного VBS-интерпретатора, представленного стандартным AX-объектом MSScriptControl.ScriptControl ?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2014.12.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.002 c
15-1386965596
Jeer
2013-12-14 00:13
2014.12.21
Феномен Стругацких или..?


15-1400787163
Дмитрий СС
2014-05-22 23:32
2014.12.21
Контрольное число


15-1400445002
Юрий
2014-05-19 00:30
2014.12.21
С днем рождения ! 19 мая 2014 понедельник


15-1399887376
Пит
2014-05-12 13:36
2014.12.21
Что творится с FireFox?


2-1385899743
cr@nk
2013-12-01 16:09
2014.12.21
Парсер большого XML





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский