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

C# Discussion :

Récuperer nom d'utilisateur pour les processus


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Par défaut Récuperer nom d'utilisateur pour les processus
    Bonsoir,

    Je suis sous vsexpress c#, j'essaye de faire un programme qui recupère les processus actifs du system avec la mémoire utilisé, le chemin d'accès etc... mais je n'arrive pas à trouver comment recuperer le nom de l'utilisateur pour chaque processus ? Je vous montre une partie de mon code qui recupère les infos sur les processus :

    Process [] processus = Process.GetProcesses(Environment.MachineName);
    ListViewItem listviewitem = new ListViewItem(processus[i].ProcessName);
    listviewitem.SubItems.Add(processus[i].Id.ToString());
    listviewitem.SubItems.Add(processus[i].WorkingSet64.ToString());
    listView1.Items.Add(listviewitem);

    Si vous pouvez m'aider merci

  2. #2
    Membre expérimenté Avatar de scifire
    Inscrit en
    Juillet 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 226
    Par défaut
    http://benreichelt.net/blog/2006/01/...ess-User-Name/

    Code C# : 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
    static string GetProcessOwner(int processId)
    {
        string query = "SELECT * FROM Win32_Process WHERE ProcessID = " + processId;
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
        ManagementObjectCollection processList = searcher.Get();
     
        foreach (ManagementObject obj in processList)
        {
            string[] argList = new string[] { string.Empty };
            int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
            if (returnVal == 0)
                return argList[0];
        }
     
        return string.Empty;
    }

    Keep in mind that this requires the System.Management namespace, which I don’t think is on the reference list by default.

    I’m pretty sure this has something to so with the Windows Management Interface (WMI) stuff. So if the WMI services aren’t running, this may not work at all?
    J'ai pas teste le dependance du service WMI et le code mais je suis sur que quand le service tourne le code fonctionne comme il faut.
    Si c'est pas le cas tu es oblige de passer par Win32 et interop.

    Bon courage.
    A+

  3. #3
    Membre éclairé Avatar de TSalm
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 361
    Par défaut
    Puisque personne ne l'a encore fait, merci à scifire, ça fonctionne parfaitement !


    J'ajouterais juste qu'il faut aussi ajouter une référence sur System.Management.

    C'est peut-être un peu lent par contre...

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je crois qu'il y a moyen de le faire en C# avec des classes prévus pour la remonté de statistique pour faire du monitoring.
    Ainsi j'avais récup le ParentProcessID qui n'est pas disponible avec l'objet Process.
    Désolé mais j'ai oublié le nom de la classe et j'ai pas mon code sous la main.

Discussions similaires

  1. Extraire les noms des fichiers pour les utiliser en variable
    Par Sylver--- dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 18/02/2011, 13h57
  2. Le partage de la mémoire vision utilisateur pour les langages
    Par wafiwafi dans le forum Langages de programmation
    Réponses: 21
    Dernier message: 24/12/2009, 15h56
  3. Réponses: 0
    Dernier message: 30/04/2009, 11h13
  4. Quel nom de composant pour les Assistive Techonologies ?
    Par gifffftane dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 27/08/2007, 19h45

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