Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 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

Ответить

Номер ответа: 2
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 12.07.06 00:56
Ты, для начала, скажи лучше какую вообще инфу ты хочешь получить? Какая конкретно стоит задача?

Ответить

Номер ответа: 3
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 12.07.06 01:01
почему возвращается строка "1111"

а ты On Error Resume Next убери и сразу узнаешь, почему возвращается "1111"

Ответить

Номер ответа: 4
Автор ответа:
 z-dan-z



Вопросов: 1
Ответов: 7
 Профиль | | #4 Добавлено: 12.07.06 08:42
Конкретно хочу получать информацию о системных параметрах удаленных машин через WMI провайдеры

Ответить

Номер ответа: 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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам