IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Afficher Liste Processus station distante : comment gerer ExecutablePath


Sujet :

VB.NET

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut Afficher Liste Processus station distante : comment gerer ExecutablePath
    Bonjour,

    Je rencontre actuellement un petit soucis pour afficher les processus en cours d'exécutions sur une machine distante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Public Sub GetProcessList(ByVal ComputerName As String)
            Dim maListProcess As New ListViewItem
            ' Query system for Operating System information
            Dim query As ObjectQuery
            Dim searcher As ManagementObjectSearcher
            Dim queryCollection As ManagementObjectCollection
            Dim m As ManagementObject
     
            frmProcessList.Show()
     
            query = New ObjectQuery("SELECT * FROM Win32_Process")
            searcher = New      ManagementObjectSearcher(ConnectScope(ComputerName), query)
            'queryCollection = searcher.Get()
            For Each m In searcher.Get()
                Console.WriteLine(m.ToString())
                Console.WriteLine(m("ProcessId").ToString)
                Console.WriteLine(m("Name").ToString)
                Console.WriteLine(m("execpath").ToString)
                Console.WriteLine(m("handle").ToString)
            Next
     
        End Sub
    Je n'arrive pas à correctement gérer l'affichage des données de ExecutablePath :

    Il me retourne l'exception NullReferenceException n'a pas été gérée.

    Pour gérer cette exception j'ai ajouter ceci dans le for each :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    For Each m In searcher.Get()
                    Dim execPath As String = ""
                    If m("ExecutablePath") IsNot Nothing Then
                        execPath = m("ExecutablePath").ToString
                    End If
                    Console.WriteLine(m.ToString())
                    Console.WriteLine(m("ProcessId").ToString)
                    Console.WriteLine(m("Name").ToString)
                    Console.WriteLine(m(execPath))
                    Console.WriteLine(m("handle").ToString)
                Next
    Suite à quoi j'obtiens une nouvelle exception :
    L'exception ManagementException n'a pas été gérée.

    J'ai donc fait un try catch pour récupérer l'exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
            Try
                For Each m In searcher.Get()
                    Dim execPath As String = ""
                    If m("ExecutablePath") IsNot Nothing Then
                        execPath = m("ExecutablePath").ToString
                    End If
                    Console.WriteLine(m.ToString())
                    Console.WriteLine(m("ProcessId").ToString)
                    Console.WriteLine(m("Name").ToString)
                    Console.WriteLine(m(execPath))
                    Console.WriteLine(m("handle").ToString)
                Next
            Catch e As Exception
                MsgBox(e.Message)
            End Try
    après quoi le try catch me renvoie un :"non trouvé"

    et dans la console de sortie j'obtiens :

    \\Machine_distante\root\cimv2:Win32_Process.Handle="0"
    0
    System Idle Process
    Il semble que c le seule élément qui me bloque car en affichant les autres éléments il ne semble pas y avoir de problème

    Si quelqu'un a une idée pour géré ExecutablePath je suis preneur.

    ++

    Je continue mes recherche

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    rebonjour,

    en fait je suis un boulet

    Mon collegue en 3 minutes à trouve le truc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    For Each m In searcher.Get()
                    Dim execPath As String = ""
                    If m("ExecutablePath") IsNot Nothing Then
                        execPath = m("ExecutablePath").ToString
                    End If
                    Console.WriteLine(m.ToString())
                    Console.WriteLine(m("ProcessId").ToString)
                    Console.WriteLine(m("Name").ToString)
                    Console.WriteLine(m(execPath))
                    Console.WriteLine(m("handle").ToString)
                Next
    enfait je faisais deja la conversion en string dans le if

    problème résolu cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment afficher un processus
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 20/11/2011, 19h24
  2. Réponses: 3
    Dernier message: 11/07/2011, 17h51
  3. Réponses: 1
    Dernier message: 30/08/2010, 09h49
  4. comment gerer une liste d'exemple
    Par Fox213 dans le forum Bibliographies - Index - Glossaires
    Réponses: 0
    Dernier message: 14/01/2008, 18h53
  5. Liste processus sur PC distant
    Par chaours dans le forum Delphi
    Réponses: 23
    Dernier message: 02/09/2006, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo