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 Discussion :

Recupérer les processus sauf ceux du système


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 98
    Points : 63
    Points
    63
    Par défaut Recupérer les processus sauf ceux du système
    Salut à tous,
    Je voudrais savoir comment on peut savoir si un processus vient du système ou pas.
    Je fais un snapshot puis j'utilise openProcess().
    Il me renvoie tous les processus, même ceux du système.
    Je voudrais savoir de manière sûre si le processus est vital pour le système.
    Par exemple, s'il vient d'un utilisateur un pas.

    Merci à tous.

    Alain

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Ben tu récupères le owner

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Merci pour ce genre de question c'est le genre de routine que je cherchais depuis longtemps
    Bon j'ai la réponse si OpenProcess retourne un handle NULL c'est que l'accès est refusé.
    Chercher dans le MSDN il y a un exemple d'utilisation de OpenProcess qui liste tous les processes en exécution.
    On peut avoir l'erreur avec GetLastError()
    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
    23
    void printError( TCHAR* msg )
    {
      DWORD eNum;
      TCHAR sysMsg[256];
      TCHAR* p;
    
      eNum = GetLastError( );
      FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
             NULL, eNum,
             MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
             sysMsg, 256, NULL );
    
      // Trim the end of the line and terminate it with a null
      p = sysMsg;
      while( ( *p > 31 ) || ( *p == 9 ) )
        ++p;
      do { *p-- = 0; } while( ( p >= sysMsg ) &&
                              ( ( *p == '.' ) || ( *p < 33 ) ) );
    
      // Display the message
      printf( "\n  WARNING: %s failed with error %d (%s)", msg, eNum, sysMsg );
    }
    Si GetLastError() donne Access Denied c'est que évidemment OpenProcess a échoué
    Chercher dans le MSDN :
    Taking a Snapshot and Viewing Processes


    http://msdn2.microsoft.com/en-us/library/ms686701.aspx

Discussions similaires

  1. les processus dans un système multi-tâche
    Par haphp dans le forum Autres systèmes
    Réponses: 0
    Dernier message: 15/09/2010, 23h45
  2. Réponses: 0
    Dernier message: 01/02/2010, 14h51
  3. Réponses: 0
    Dernier message: 30/04/2009, 11h13
  4. Les processus système
    Par arnaudperfect dans le forum Administration système
    Réponses: 6
    Dernier message: 08/08/2007, 13h57
  5. Lister les tables sauf les tables systèmes d'une base
    Par Sytchev3 dans le forum Access
    Réponses: 9
    Dernier message: 06/06/2006, 15h33

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