Цитата:
Сообщение от NumLock
через IScriptControl, надеюсь? тогда смотри его методы Eval, ExecuteStatement, Run.
|
Извините, я немного не правильно поставил вопрос, не совсем точно.
Конструкцию для запуска скрипта я использую
Код:
sc:=CreateOLEObject('MSScriptControl.ScriptControl');
SC.Language:='VBScript';
SC.Timeout:=-1;
SC.AllowUI:=True;
SC.ExecuteStatement(Memo1.Text);
На данный момент я получил такуб конструкцию с помощью которой можно вернуть из скрипта с помощью Eval значение
Код:
Dim Name1(10, 5)
'Name1=Array(1,2,3)
Dim i
i=0
Set wmio = GetObject("WinMgmts:{impersonationLevel=impersonate}!\\" & "eoi-004-06" & "\Root\CIMV2")
'Set Name1 = wmio.ExecQuery("Select * from Win32_LogicalDisk")
For Each objItem in wmio.ExecQuery("Select * from Win32_LogicalDisk WHERE DriveType = 3 AND Size IS NOT NULL")
Name1(i, 0)=objItem.Name
Name1(i, 1)=objItem.FileSystem
Name1(i, 2)=objItem.Size
Name1(i, 3)=objItem.FreeSpace
Name1(i, 4)=objItem.VolumeSerialNumber
i=i+1
Next
но она слишком большая и это только информация о локальных дисках. И получается что при сборе всей информации код получается слишком большой. Можно ли как то упростить данную конструкцию и передать в программу Delphi сразу всю структуру которую возвращает
Код:
wmio.ExecQuery("Select * from Win32_LogicalDisk WHERE DriveType = 3 AND Size IS NOT NULL")