Страница: 1 |
|
Вопрос: Перевести с VBScript в dll на VB
|
Добавлено: 11.07.06 16:53
|
|
Автор вопроса: z-dan-z
|
Здравствуйте, господа, суть задачки в следующем делаю прогу на с# хочу прикрутить туда dll-ку на VB которая будет выполнять действия рабочего VB скрипта
скрипт
On Error Resume Next
strComputer = "10.151.1.99"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
For Each objItem in colItems
Wscript.Echo "SystemName: " & objItem.SystemName
Wscript.Echo "CPU: " & objItem.Name
Next
dll-ка
Imports System
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
public Class wmi1
end function
Public Function macI ( ip as string) as string
dim res as string
dim objWMIService,colItems,objItem
res = "1111"
On Error Resume Next
objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & ip & "\root\cimv2")
colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
For Each objItem in colItems
res = "SystemName: " & objItem.SystemName & "CPU: " & objItem.Name
Next
return res
end function
End Class
господа не силен в VBasic-ке вобще подскажите пожалйста, почему возвращается строка "1111" , т.е. не создается экземпляр объекта colItems
Ответить
|
Номер ответа: 1 Автор ответа: z-dan-z
Вопросов: 1 Ответов: 7
|
Профиль | | #1
|
Добавлено: 11.07.06 17:14
|
Сорри, с тэгами получше будет
скрипт
On Error Resume Next
strComputer = "10.151.1.99"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2"
Set colItems = objWMIService.ExecQuery(" Select * from Win32_Processor",,48)
For Each objItem in colItems
Wscript.Echo "SystemName: " & objItem.SystemName
Wscript.Echo "CPU: " & objItem. Name
Next
dll-ка
Imports System
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
public Class wmi1
end function
Public Function macI ( ip as string) as string
dim res as string
dim objWMIService,colItems,objItem
res = "1111"
On Error Resume Next
objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & ip & "\root\cimv2"
colItems = objWMIService.ExecQuery(" Select * from Win32_Processor",,48)
For Each objItem in colItems
res = "SystemName: " & objItem.SystemName & "CPU: " & objItem. Name
Next
return res
end function
End Class
Ответить
|
Номер ответа: 5 Автор ответа: z-dan-z
Вопросов: 1 Ответов: 7
|
Профиль | | #5
|
Добавлено: 12.07.06 09:17
|
При вызове Unspecified error источник SWbemObjectSet
при входе в конструкцию
For Each objItem in colItems
res = "SystemName: " & objItem.SystemName & "CPU: " & objItem.Name
Next
причем если взять colItems.SystemName , то возникает вполне устраивающая меня ошибка отсутствия члена SystemName, после запроса в colItems должна была попасть коллекция записей вида
null,...,null, Значение1 ,null ....
значение2,null,...
.....
null,......,значениеN,...null
судя по всему в colItems попала одна запись, а не коллекция, почему? подскажите, пожалуйста, в чем ошибка
Ответить
|
Номер ответа: 6 Автор ответа: z-dan-z
Вопросов: 1 Ответов: 7
|
Профиль | | #6
|
Добавлено: 14.07.06 18:36
|
Public Function MacI ( ip as string) as string
dim res as string
dim wbemObjectSet,wbemObject
dim colItems
wbemObjectSet = GetObject("winmgmts://" & ip).InstancesOf("Win32_Processor"
On Error Resume Next
For Each wbemObject In wbemObjectSet
res = res & "n: " & wbemObject. Name
res = res & " sn: " & wbemObject.SystemName
Next
return res
end function
а вот этот код работает на VB ... а на скрипте оба работают
Ответить
|
Страница: 1 |
Поиск по форуму