Items Method helps us to get the values stored in the key value pair of the data dictionary object.
object.Items( )
Option Explicit
Dim d,Capital,i,Capital2Search
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ' Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
'Items Method helps us to get the values stored in the key value pair of the data dictionary object.
'object.Items( )
Capital = d.items
For i=LBound(Capital) to UBound(Capital)
wscript.echo Capital(i)
Next
'Searching for Cairo
Capital2Search = "Cairo"
For i=LBound(Capital) to UBound(Capital)
If Instr(UCASE(Capital(i)),UCASE(Capital2Search)) > 0 Then
wscript.echo Capital2Search & " Exists ! "
End If
Next
EDIT : 13/08/2020 @18:00
Refer to your last comment : You can do something like that :
Option Explicit
Dim Title : Title = "Find a Service by Name"
Dim Dico,objWMIService,colListOfServices,objService,Keys,ServiceName,Service2Search
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery("SELECT * FROM Win32_Service")
Set Dico = CreateObject("Scripting.Dictionary")
' We fill our Dictionary in this loop For ... Next
For Each objService in colListOfServices
If Not dico.Exists(objService.Name) Then
Dico.Add objService.Name,objService.PathName
End If
Next
Service2Search = "Bits"
Keys = Dico.Keys
' Looking for a service name = "BITS" in this example :
For each ServiceName in Keys
If Instr(UCASE(ServiceName),UCASE(Service2Search)) > 0 Then
MsgBox "The service "& ServiceName & " : Exists !" & vbcrlf &_
"PahName : " & dico(ServiceName),vbInformation,Title
'Exit For
End If
Next
EDIT : 13/08/2020 @ 19:30
If you want to search into an array of services :
Option Explicit
Dim Title : Title = "Find a Service by Name into an Array"
Dim Dico,objWMIService,colListOfServices,objService,Keys
Dim ServiceName,Services,ArrService2Search,Service2Search,PathName
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery("SELECT * FROM Win32_Service")
Set Dico = CreateObject("Scripting.Dictionary")
' We fill our Dictionary in this loop For ... Next
For Each objService in colListOfServices
If Not dico.Exists(objService.Name) Then
Dico.Add objService.Name,objService.PathName
End If
Next
ArrService2Search = Array(_
"Adobe",_
"Bits",_
"GoogleChromeElevationService",_
"gupdate",_
"gupdatem",_
"sedsvc",_
"SynTPEnhService"_
)
Services = Dico.Keys
' Looking for a service name in this array ArrService2Search :
For each Service2Search in ArrService2Search
For each ServiceName in Services
PathName = Dico(ServiceName)
If Instr(UCASE(ServiceName),UCASE(Service2Search)) > 0 Then
MsgBox "The service : " & chr(34) & ServiceName & chr(34) & " Exists !" & vbcrlf &_
"Path : "& chr(34) & PathName & chr(34),vbInformation,Title
End If
Next
Next