Seite 1 von 1

VBS Script...

Verfasst: 24.04.2007 17:32
von jpd
Hallo,
wollte eigentlich diesen VBS Script in PB umsetzen,

aber leider keine gute loesung bissher erarbeitet

habe mir tools von ts-soft, oder script control (MK-soft), und der konverter VBS to PB von kiffi angeguckt aber leider keine gute ergebnisse erreicht.

im beispiel ist PrivatNet der name der name der netzwerk verbindung eingetragen die man abfragen möchte.

Danke
jpd

Code: Alles auswählen


strComputer = "."
Set objWMIService = GetObject(_
    "winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
    ("Select * From Win32_NetworkAdapter " _
        & "Where NetConnectionID = " & _
        [color=red]"'PrivateNet'"[/color])

For Each objItem in colItems
    strMACAddress = objItem.MACAddress
Next

Set colItems = objWMIService.ExecQuery _
    ("Select * From Win32_NetworkAdapterConfiguration")

For Each objItem in colItems
    If objItem.MACAddress = strMACAddress Then
        For Each strIPAddress in objItem.IPAddress
           Wscript.Echo "IP Address: " &  strIPAddress
        Next
    End If
Next


Verfasst: 24.04.2007 17:50
von ts-soft
Hier ein ähnlicher Code als Beispiel:
http://www.purebasic.fr/english/viewtop ... c&start=45
letzter Beitrag.

Mit Echo kommste nicht weit, mußte schon einem String zuordnen und per
Eval auswerten!

Erforderlich lib incl. Beispiel:
http://www.purebasic.fr/german/viewtopic.php?t=12701

Geht natürlich auch mit der ScriptControl lib.

Verfasst: 25.04.2007 17:52
von jpd
Hallo Ts-Soft,

Vilen Dank für die unterstützung und für die überarbeitet wmi.pb (include file) ist einfach spitze! :allright:

http://www.purebasic.fr/german/viewtopi ... hlight=wmi

natürlich auch den "Code-Collektor" DataMiner :D


hier ein beispiel, der eigentlich nicht mehr so viel mit den ursprung script zu tun hat!

finde ich trotzdem Ok!.

Ciao
jpd

Code: Alles auswählen

Enumeration 
  #Window_0 
  #Combo_0 
  #Text_0 
  #Listview_0 
  #Button_send 
  #Button_Close 
EndEnumeration 
IncludeFile "wmi.pb"
Structure Net_config_adapter
  NetConnectID.s
   Index.s
   MACAddress.s
   IPAdress.s
   Description.s
   SettingID.s
EndStructure

Global NewList ConfigNet.Net_config_adapter()

Procedure Open_Win() 

  If OpenWindow(#Window_0, 500, 300, 640, 480, "Win32_NetworkAdapter",  #PB_Window_SystemMenu |#PB_Window_ScreenCentered| #PB_Window_SizeGadget | #PB_Window_TitleBar ) 
    If CreateGadgetList(WindowID(#Window_0)) 
      ListIconGadget(#Listview_0, 20, 60, 600, 300,"Description",600/6) 
      AddGadgetColumn(#Listview_0, 1, "NetConnectID", 600/6) 
      AddGadgetColumn(#Listview_0, 2, "MACAddress", 600/6) 
      AddGadgetColumn(#Listview_0, 3, "IP Adress", 600/6) 
      AddGadgetColumn(#Listview_0, 4,"Index" , 600/6) 
      AddGadgetColumn(#Listview_0, 5, "SettingID", 600/6) 
    EndIf 
  EndIf 
EndProcedure

Open_Win() 

wmi_init() 
WMI_Call("SELECT * FROM Win32_NetworkAdapter", "NetConnectionID, Index, MACAddress") 
ResetList(wmidata()) 

While NextElement(wmidata()) 
  Debug wmidata()  ; Alle Listenelemente darstellen / show all elements 
  AddElement(ConfigNet())
  ConfigNet()\NetConnectID=wmidata()
  NextElement(wmidata())
  ConfigNet()\Index=wmidata()
  NextElement(wmidata())
  ConfigNet()\MACAddress=wmidata()
Wend 
wmi_release("OK")
ClearList(wmidata()) 
ResetList(ConfigNet()) 
wmi_init() 
WMI_Call("SELECT * FROM Win32_NetworkAdapterConfiguration", "IPAddress,Description,SettingID") 
ResetList(wmidata()) 

;NextElement(ConfigNet())

NextElement(wmidata()) 
While NextElement(ConfigNet())
  Debug wmidata()  ; Alle Listenelemente darstellen / show all elements 
  Debug wmidata()
  Debug "listIndex: "+Str(ListIndex(wmidata()) )
  ConfigNet()\IPAdress=wmidata()
  Debug ConfigNet()\IPAdress
  NextElement(wmidata())
  ConfigNet()\Description=wmidata()
  NextElement(wmidata())
  ConfigNet()\SettingID=wmidata()
  NextElement(wmidata()) 
Wend 
ClearList(wmidata()) 
ResetList(ConfigNet()) 
x2=0
While NextElement(ConfigNet())
  AddGadgetItem(#Listview_0,-1,ConfigNet()\Description) 
  SetGadgetItemText(#Listview_0,x2,ConfigNet()\NetConnectID,1) 
  SetGadgetItemText(#Listview_0,x2,ConfigNet()\MACAddress,2) 
  SetGadgetItemText(#Listview_0,x2,ConfigNet()\IPAdress,3) 
  SetGadgetItemText(#Listview_0,x2,ConfigNet()\Index,4)
  SetGadgetItemText(#Listview_0,x2,ConfigNet()\SettingID,5) 
  ;NextElement(wmidata())
  x2=x2+1
Wend 
Repeat 
  
  event=WaitWindowEvent() 
  
  Select Event 
  
    Case #PB_Event_Gadget 
      Select EventGadget() 
        Case #Button_send 
        ClearGadgetItemList(#Listview_0) 
        
        Case  #PB_Event_Menu 
        Case #Button_Close 
        End 
          Select EventMenu() 
           
          EndSelect 
        Case #PB_Event_CloseWindow 
      
        End 
      EndSelect    
  EndSelect    
Until Event = #PB_Event_CloseWindow 

End