VBS Script...

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

VBS Script...

Beitrag 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

PB 5.10 Windows 7 x64
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag 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 


PB 5.10 Windows 7 x64
Antworten