tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
458
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von spirit
    spirit spirit ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Duisburg (NRW)
    Beiträge
    308
    Hallo

    Ich habe mal wieder ein kleines Problem. Ich würde gerne feststellen wie viele Dienste auf meinem Rechner aktiv sind. Als Ausgabe hätte ich gerne eine Anzahl oder eine kleine Form mit der Auflistung. Was ich bisher Googeln konnte, bezog sich immer auf die Abfrage ob ein namentlich anzugebender Dienst läuft. In meinem Fall ist es mir egal welcher Dienst es ist. Wie schon gesagt, als Ausgabe reicht mir mindestens ein Zahl. Hat da jemand eine Idee

    Danke im voraus
     
    Schweigen ist auch eine Art um mangelndes Wissen zu verbergen

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Suchen nach vb und wmi

    http://www.computerperformance.co.uk...ng_on_Computer

    Umgemünzt für VB6:
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    Public Sub testWmiScript()
     
        ' Service.vbs
        ' Sample script to List services
        ' [url]www.computerperformance.co.uk/[/url]
        ' Author Guy Thomas [url]http://computerperformance.co.uk/[/url]
        ' Version 1.5 December 2005
        ' -------------------------------------------------------'
        'Umgeschrieben als Beispiel für VB6 von Stefan Erb 01.12.2009
        
        Dim objWMIService, objItem, objService, strServiceList    Dim colListOfServices, strComputer, strService
        
        'On Error Resume Next
        
        ' ---------------------------------------------------------
        ' Pure WMI commands
        strComputer = "."
        Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
        Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service ")
        
        'Count the Services
        Debug.Print colListOfServices.Count
        
        ' WMI and VBScript loop
        For Each objService In colListOfServices
            Debug.Print objService.Name & vbTab & objService.DisplayName
        Next
     
     
    End Sub

    Erklärungen dazu findest du unter dem angegeben Link
    Geändert von Yaslaw (01.12.09 um 09:41 Uhr)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Avatar von spirit
    spirit spirit ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Duisburg (NRW)
    Beiträge
    308
    Hallo

    Erstmal Dnake für deine schnelle Antwort. Leider werden zwar die Dienste angezeigt, jedoch unabhängig of diese gestartet oder nicht gestartet sind. Gibt es in dem Select Befehl vieleicht noch eine Option die den Status des Dienstes abfragt?

    Danke im voraus
     
    Schweigen ist auch eine Art um mangelndes Wissen zu verbergen

  4. #4
    Avatar von spirit
    spirit spirit ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Duisburg (NRW)
    Beiträge
    308
    Hallo

    Habe die Stelle gefunden in der der Status des Dienstes steckt. Es muss nur die Zeile:
    Code :
    1
    
    Debug.Print objService.Name & vbTab  & objService.DisplayName
    auf
    Code :
    1
    
    Debug.Print objService.Name & vbTab & objService.State & vbTab & objService.DisplayName
    geändert werden.
    Somit kannich dann in einer If Schleife die Objektvariable objService.State auf den Status 'running' prüfen und einen Zähler dahinterschalten. Schon habe ich meine gewünschte Anzahl an laufenden Diensten.

    Bis später
     
    Schweigen ist auch eine Art um mangelndes Wissen zu verbergen

  5. #5
    Avatar von spirit
    spirit spirit ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Duisburg (NRW)
    Beiträge
    308
    Hallo

    Nach genauerer Betrachtung muss ich feststellen, das lt. services.msc 53 Dienste gestartet sind. Aus dem o.a. Schript bekomme ich lediglich nur 27 laufende Dienste angezeigt. Kann es sein das nich alle Dienste mit diesem Code ausgelesen werden können

    Vilen Dank im voraus
     
    Schweigen ist auch eine Art um mangelndes Wissen zu verbergen

  6. #6
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Poste mal dein aktueller Code
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  7. #7
    Avatar von spirit
    spirit spirit ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Duisburg (NRW)
    Beiträge
    308
    Da hasse

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    Option Explicit
     
    Dim objWMIService, objItem, objService, strServiceList
    Dim colListOfServices, strComputer, strService
    Dim strServiceName, strDisplayname, strServiceState As String
    Dim sCount as integer
     
    Public Sub testWmiScript()
        
        strComputer = "."
        Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
        Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service ")
     
        For Each objService In colListOfServices
            
            If UCase(Left(objService.Name, 1)) > "N" Then
                If objService.State = "Running" Then
                    ListView1.ListItems.Add , , objService.Name
                    ListView1.ListItems(sCount).ListSubItems.Add , , objService.DisplayName
                    ListView1.ListItems(sCount).ListSubItems.Add , , objService.State
                    Label2.Caption = sCount
                    sCount = sCount + 1
                End If
            End If
        Next
            
    End Sub
     
    Private Sub cmdExit_Click()
        End
    End Sub
     
    Schweigen ist auch eine Art um mangelndes Wissen zu verbergen

  8. #8
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Code vb:
    1
    2
    3
    
    If UCase(Left(objService.Name, 1)) > "N" Then
    ...
    END IF

    entferne diese if-Schleife, denn sie gibt nur Services aus, deren namen mit einem Buchstaben > N beginnt (also N-Z)
    spirit bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  9. #9
    Avatar von spirit
    spirit spirit ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Duisburg (NRW)
    Beiträge
    308
    Super und ein dickes Danke!!
    Mein Problem ist damit gelöst
     
    Schweigen ist auch eine Art um mangelndes Wissen zu verbergen

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 21.06.07, 00:29
  2. anzahl der zeilen und anzahl der wörter pro zeile
    Von psykochris im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 07.07.05, 09:13
  3. c# IP´s und Dienste
    Von nice2kn0w im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 23.06.05, 15:53
  4. Dienste
    Von bici im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 19.11.04, 08:23
  5. RIS Dienste
    Von alex0815 im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 08.08.02, 16:09