Jo da.
ManagementPath("...") er path til den WMI klasse jeg gerne vil bruge. Msdn har en liste over de klasser der er til rådighed på:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_classes.aspStdRegProv er en klasse til at manipulere med Registry, som har nogle metoder til rådighed til dette formål, de kan findes på:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/stdregprov.aspSå oprettes der et ManagementClass object som representere den wmi-klasse jeg vil pille ved. Den får mit scope, path'en og null som options.
Da jeg gerne vil kalde metoden "EnumKey" på "StdRegProv"-klassen, til at få listede alle subkeys der er til min registry addresse, skal jeg opstille nogle input parametre til "EnumKey".
Det er hvad arrayet "arrMethodArgs" bliver brugt til. Plads 0 og 1 siger sig selv, plads 2 er outputtet fra vores metodekald. Her vil vi få et array af de subkeys som "EnumKey" gerne skulle returnere til os.
Derefter invokes metoden, "intRetVal" får så retur værdien, som er 0 hvis alt gik efter planen. Denne retur værdi kan i nogle tilfælde fortælle os, noget brugbart om hvorfor vores kald fejler, eller om remote computeren skal rebootes før vores ændring tager effekt, og den slags ting.
Nu har vi alle vores subkeys, nu skal vi bare have navne på programmerne. Det gør vi ved at læse værdien af "DisplayName" for alle vores subkeys.
Metoden "GetStringValue" på "StdRegProv" er handy her. wmiRegistry.GetMethodParameters("GetStringValue") skaffer os et object til at sætte input parametre på. Så dem udfylder vi, og metoden "GetStringValue" invokes for hver subkey vi har.
Håber der forklare noget af det, ellers bare spørg løs, så skal jeg se om jeg kan svare på det :)