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

Windows Forms Discussion :

Les threads des processus


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 41
    Points
    41
    Par défaut [c#]Les threads des processus
    Bonjour,

    Je n'arrive pas à trouver comment afficher tous les threads d'un processus en cours d'execution. J'ai vu que c'etait possible grace au logiciel "Process Explorer" et j'ai chercher dans les class process et processthread sans succès..

    Si quelqu'un aurait une méthode sous la main je suis preneur.
    Merci par avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    J'ai fait quelques progrès, maintenant j'arrive à recuperer les id des threads pour chaque processus:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IEnumerator mes_threads = nom_proc.Threads.GetEnumerator();
    while (mes_threads.MoveNext())
    {
         console_Text(nom_proc.ProcessName.ToString() + "-->" + ((ProcessThread)mes_threads.Current).Id.ToString(), 2);
    }
    Bon le seul problème c'est que j'aimerai recuperer l'information encadrer en rouge ci dessous:


    Il y a bien startadress dans la liste d'objet mais cela me renvoi un pointeur...

    Je suis toujours preneur de la moindre idée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 41
    Points
    41
    Par défaut
    Re-re bonjour

    Bon après de longues heure intensive de recherche je pense avoir trouver mon bonheur !!

    Donc pour faire court il faudrai que j'utilise WMI en faisant une requete sur Win32_ThreadStartTrace .
    Jusque là ca va.. je me connect en local je fait ma requete mais je ne récupère rien du tout...
    Je précise quand même que avec d'autre requete cela fonctionne très bien

    Voici mon code:

    ConnectionOptions c_options = new ConnectionOptions();
    ManagementScope connect = new ManagementScope("\\\\localhost\\root\\cimv2", c_options);
    System.Management.ObjectQuery query = new System.Management.ObjectQuery("select * from Win32_ThreadStartTrace");
    ManagementObjectSearcher t_rez = new ManagementObjectSearcher(connect, query);
    ManagementObjectCollection rez = t_rez.Get();
    Console.WriteLine("allallal");
    foreach (ManagementObject objet in rez)
    {
    Console.WriteLine("process id:" + objet["ProcessID"].ToString());
    Console.WriteLine("thread id:" + objet["ThreadID"].ToString());
    }
    Normalement je devrais avoir l'affichage de l'id du process suivi de l'id d'un de ces threads et ainsi de suite pour tous les threads du système...mais ma console reste désesperement vide...il ne rentre même pas dans la boucle

    J'ai aussi essayer de selectionner un process precis sans résultat:
    System.Management.ObjectQuery query = new System.Management.ObjectQuery("select * from Win32_ThreadStartTrace where ProcessID=3090");
    Plz aidez moi j'en peu plus de chercher...je suis sur que je touche au but

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 41
    Points
    41
    Par défaut
    Bon j'ai finallement reussi a trouver !

    En fait il faut mettre un handle sur le query vu que c'est sur la classe Win32_ThreadStartTrace , il n'y a jamais rien quand on fait la requete tout simplement, avec le handle on recupère les infos au fur et à mesure qu'elles sont produites par le système...

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

Discussions similaires

  1. Analyser les executable des processus actif
    Par Divelopiz dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/07/2012, 20h51
  2. Réponses: 0
    Dernier message: 04/09/2011, 10h59
  3. Comment récupérer les handles des fenêtres d'un processus ?
    Par pivil dans le forum API, COM et SDKs
    Réponses: 11
    Dernier message: 19/09/2007, 19h03
  4. Gerer les exceptions des Threads
    Par petozak dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 21/11/2006, 13h27
  5. Gestion des message windows dans les threads
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 06/10/2003, 17h25

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