Archief - [PROG][VB.NET] WMI & Win32_Service

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Blood_Raven

Legacy Member
Ik gebruik dus WMI om alle services op te vragen. Alleen het probleem is dat er verschillende services ontbreken zoals Automatische updates. Weet er iemand hoedat ik deze services toch kan opvragen? :help:

Code:
Code:
        Dim myConnectionOptions As New Management.ConnectionOptions
        With myConnectionOptions
            .Impersonation = Management.ImpersonationLevel.Impersonate
            .Authentication = Management.AuthenticationLevel.Packet
            '* Use next line for Win prior XP
            '*.Authentication = System.Management.AuthenticationLevel.Connect
        End With

        Dim myManagementScope As System.Management.ManagementScope
        myManagementScope = New System.Management.ManagementScope("root\cimv2", myConnectionOptions)
        myManagementScope.Connect()
        If myManagementScope.IsConnected = False Then
            MessageBox.Show("Could not connect to WMI namespace")

        Else
            Dim query As New Management.ObjectQuery("SELECT * FROM Win32_Service")
            Dim MySearcher As New Management.ManagementObjectSearcher(query)

            For Each Mgmt As Management.ManagementObject In MySearcher.Get()
                ListBox1.Items.Add(Mgmt("Caption").ToString)
                If Mgmt("Name").ToString = "MySQL" Then
                    MessageBox.Show("Hit")
                    Dim Parameters() As String = {"Manual"}
                    Dim ReturnValue As Object = Mgmt.InvokeMethod("ChangeStartMode", Parameters)
                    'displays return value, a "0" indicates success (see documentation link for all return values)
                    MessageBox.Show(ReturnValue.ToString)
                    Exit For
                End If
            Next
        End If
Bedankt alvast

Obliv`

Legacy Member
Waarom doe je dit niet met de classes die hiervoor in het .NET framework zitten ingebouwd? Kheb ooit eens een zeer beperkt projectje gemaakt dat ook met services handelde, ik haalde alle services op, op deze manier:

System.ServiceProcess.ServiceController[] services = System.ServiceProcess.ServiceController.GetServices();

Blood_Raven

Legacy Member
Obliv` zei:
Waarom doe je dit niet met de classes die hiervoor in het .NET framework zitten ingebouwd? Kheb ooit eens een zeer beperkt projectje gemaakt dat ook met services handelde, ik haalde alle services op, op deze manier:

System.ServiceProcess.ServiceController[] services = System.ServiceProcess.ServiceController.GetServices();
Ik moet de opstartwijziging kunnen aanpassen. Bij de objecten die ik volgens die manier terug krijg vind ik geen manier om een service op disabled te zetten. :(

EDIT:
Bon soit is opgelost, wel wat krom :(. Ik kan via de servicecontroller alle services opvragen en van deze lijst via WMI een service disablen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan