|
#1
|
|||
|
|||
Delphi и VBS
Доброго времени суток.
Нужен совет. Есть VBS скрипт который собирает информацию о компьютерах(локальном/удаленном) по имени или IP адресу. Всю информацию он записывает в файл. Я нашел способ запустить этот скрипт из Delphi и даже как получить единичные значения результата его работы, но возникла другая проблема, как можно получить из скрипта массив, грубо говоря список локальных дисков. Подскажите пожалуйста. |
#2
|
||||
|
||||
Цитата:
|
Этот пользователь сказал Спасибо Uniq! за это полезное сообщение: | ||
Freeman (27.08.2014)
|
#3
|
|||
|
|||
Цитата:
|
#4
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |
#5
|
|||
|
|||
Цитата:
Конструкцию для запуска скрипта я использую Код:
sc:=CreateOLEObject('MSScriptControl.ScriptControl'); SC.Language:='VBScript'; SC.Timeout:=-1; SC.AllowUI:=True; SC.ExecuteStatement(Memo1.Text); Код:
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 Код:
wmio.ExecQuery("Select * from Win32_LogicalDisk WHERE DriveType = 3 AND Size IS NOT NULL") |
#7
|
||||
|
||||
так перепиши скрипт сразу в Delphi:
Цитата:
Пишу программы за еду. __________________ |
#8
|
|||
|
|||
Всем спасибо действительно решение было намного проще, после длительного гугления была найдена библиотека WbemScripting_TLB которая неплохо справляется с необходимой задачей, но возникла небольшая проблема.В определенные моменты, по непонятной причине появляется следующая ошибка
Код:
Could not convert variant of type (Dispatch) into type (String) |
#9
|
||||
|
||||
Ну не может тип интерфейс к строке преобразоваться, проверяй тип варианта
Пишу программы за еду. __________________ |
#10
|
|||
|
|||
Цитата:
Последний раз редактировалось AngelNine, 29.08.2014 в 10:57. |
#11
|
||||
|
||||
VarType функция
Пишу программы за еду. __________________ |
#12
|
|||
|
|||
А выяснить почему так происходит можно как то выяснить?
Все данные возвращаются в формате varDispatch((( Но большую часть он конвертирует нормально, а не которые нет... Последний раз редактировалось AngelNine, 29.08.2014 в 11:20. |