Yet another process monitor

Soyez le premier à donner votre avis sur cette source.

Vue 15 711 fois - Téléchargée 1 246 fois

Description

Bonjour à tous,

YAPM (Yet Another Process Monitor) est un programme permettant d'entièrement gérer les processus et services de votre système.
Cà regroupe la quasi-totalité des fonctions utiles pour la gestion des processus.

Il est fortement basé (au niveau de l'interface de la vue détaillée et au niveau des fonctions disponibles) sur "Process Explorer" de sysinternals (Microsoft). Dans le résultat bien sur, pas le code (non dispo au passage).

Sommaire de la description
  • Principales fonctions communes
  • Fonctions additionnelles par rapport à taskmgr ou autre
  • Reste à faire pour terminer
  • Complétion future
  • Commentaires sur le code
  • Réutilisation de code
  • License
  • Compilation du code
  • Utilisation
  • Commentaires généraux
  • Sourceforge


Principales fonctions communes :
  • Gestion complète des tâches comme dans taskmgr
  • Gestion des processus complète (kill, priorité, pause/resume, récupération des infos...)
  • Récupération des modules/threads des processus
  • Gestion des services (start/pause/stop..., type de démarrage...)
  • Recherche de string dans les handles/modules/services/processus ouverts/chargés
  • Récupération des infos sur un fichier + actions de base (changement dates/attributs...)
  • Préférences + vérification de MAJ online + auto download
  • Sauvegarde de rapports sur les processus/services/handles
  • Récupération online de la decription des processus + leur taux de dangerosité (basé uniquement sur le nom, pas sur leur MD5)


Fonctions additionnelles par rapport à taskmgr ou autre :
  • Gestion complète des threads (mais priorités un peu boguées^^)
  • Récupération des handles des processus
  • Gestion des fenêtres ouvertes par les processus
  • Gestion complète des modules
  • Emergency hotkeys (programmation de raccourcis d'urgence)
  • State Based Actions (règles programmables à activer en fonction de l'état des processus)
  • Vue des connexions TCP/UDP ouvertes par les processus
  • Sélection du processus associé à une fenêtre par drag & drop de la souris (comme dans Process Explorer)
  • Sélection multiples de processus/services pour autoriser un multikill violent par exemple
  • Récupération de multiples informations utiles (I/O des processus, changement privileges, zones mémoires, services associés aux processus...)
  • Gestion des fenêtres ouvertes par les processus
  • Possibilité de délocker un fichier ouvert par un autre programme
  • Application user friendly
  • Option 'Full power' (enable le debug privilege) qui permet de toucher aux processus système (maintenant par défaut)
  • Monitoring complet de l'ensemble des objets Windows (identique à l'analyseur de performances dans perfmon.msc) avec gestion plus complète de l'échelle de temps (récupération des infos via PerformanceCounter)
  • Gestion par thread
  • Gestion des privileges des processus
  • tray icon animée (usage CPU/mémoire)
  • gestion des zones mémoire virtuelles
  • éditeur hexadécimal intégré pour lire la mémoire
  • fonctions shutdown/reboot/...
  • historique de toutes les statistiques par processus
  • mode 'log' (récupère toutes les changements sur un processus et créé un log configurable. Récupère threads, memory regions, handles, windows, connexions, services & modules)
  • ....


Reste à faire pour terminer :
  • Récupération plus intelligente des chemins d'accès aux processus (notamment sous XP pour \C:\?\Windows....)
  • Fichier d'aide
  • Vue treeview pour le lien de parenté des processus


Complétion future :
  • Fiaiblité ++ (quelques petits bugs connus mais dont l'origine n'est pas encore identifiée)
  • Meilleure gestion des droits (YAPM doit nécessiter moins de droits, et proposer plus de fonctions pour les codes non admin)


Commentaires sur le code :
  • VB.Net avec Visual Studio 2008
  • Commenté, mais tout en anglais
  • Niveau expert


Réutilisation de code :

License
  • GNU GPL 3.0 pour l'ensemble du projet
  • Dll RibbonControl de Jose M. Menendez Poó (http://www.codeproject.com/KB/toolbars/WinFormsRibbon.aspx) sous license Microsoft Public License (Ms-PL)
  • Icones en Creative Commons
  • Certaines fonctions (2 ou 3, voir fichier readme.txt pour les détails) sont inspirées par du code sous licence GNU GPL 3.0 (code de wj32 dans Process Hacker).


Compilation du code
  • Démarrer le fichier solution et compiler en mode RELEASE ou DEBUG


Utilisation
  • De préférence en tant qu'administrateur pour avoir accès à tous les droits sur les processus
  • Compatible Vista (développé dessus), XP Pro (c'est ok sur ma machine virtuelle) mais PAS WINDOWS 2000 (mais franchement on s'en fout !!)
  • Les menus non enabled sont généralement des fonctions non encore implémentées


Commentaires généraux :
  • Utilisation de fonctions API pltôt que leur équivalent dans le framework .Net. C'est fait exprès, c'est pour plus de performances.
  • Utilisation de pointeurs. C'est pas safe mais je suis obligé. Unmanaged memory.
  • Déclarations des fonctions API probablement assez foireuses pour certaines (héritage de code VB6 mal traduit).


Sourceforge :

La dernière version de ce code source est disponible ici : https://sourceforge.net/projects/yaprocmon/
Un setup avec l'exécutable est également disponible au même endroit : https://sourceforge.net/project/platformdownload.php?group_id=244697

Dernier code à jour disponible en SVN ici : https://yaprocmon.svn.sourceforge.net/svnroot/yaprocmon
(pas forcément utilisable, ne prendre que les releases normalement).

Source / Exemple :


' A COMPILER EN RELEASE !

' La dernière version du code est disponible ici (SVN) :
' https://sourceforge.net/projects/yaprocmon/

' Visual Studio 2008 (au pire éditer le fichier solution, remplacer l'entête par une version antérieure.

Conclusion :


Voilà, si vous avez des remarques, des MAJ à proposer, des bugs trouvés, n'importe quoi à dire ben ne vous gênez pas c'est fait pour :-)

A compiler en mode release !

Distribuable en fichier zip.

La prochaine version sera une RC1 en download sur sourceforge !!

UTILISATION NON GARANTIE ! POTENTIELLEMENT EXTREMEMENT DANGEREUSE QUI PLUS EST. ATTENTION A LA FONCTION SBA (Stated Based Action), TOUJOURS SIMULER AVANT (touche F2) ET BIEN REFLECHIR AUX REGLES CREEES.

@+

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

The Meteorologist
Messages postés
234
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
3 novembre 2011

Pas mal, beaucoup de soin mais personnellement je trouve que cela ressemble plus à du VB6 que du VB.NET. Il n'y a presque pas de POO et tu utilises énormément de choses obsolètes tels que des modules, structures etc... Tu utilises presque uniquement l'espace de nom Microsoft.VisualBasic qui est censé être là juste pour garder la compatibilité avec VB6.

Aussi non, mis à part ça c'est très bien fait.

++
Le newbie
Messages postés
200
Date d'inscription
mardi 17 octobre 2006
Statut
Membre
Dernière intervention
24 mars 2012
2
Salut,

Je suis assez d'accord avec les remarques de The Meteorologist et je vais ajouté un bug.

Tu as précisé qu'il fallait évidemment être loggé en admin (logique) pour utiliser ton code. Cependant as-tu fais la vérification que le compte loggé est bien l'admin ?
J'ai fais le test et je t'avoue que j'ai trouvé une belle exception.

Sinon j'aime bien l'interface et le concept. Merci : 7/10
violent_ken
Messages postés
1822
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010

Normal, beaucoup de code (la plupart ?) provient de VB6 ^^

Je sais que c'est moche, mais j'ai eu la flemme de tout recoder en OO lol, d'autant que c'est pas ce qu'il y a de plus rapide niveau temps d'exécution. Y a qu'à voir l'appel à Process.GetProcessById qui est horriblement lent mais que j'utilise quand même pour l'instant.

Il aurait fallut que je recode une classe Process entièrement, par soucis de temps de codage j'ai uniquement mis les fonctions qui auraient été statiques (enumerate..etc) dans un module mdlProcess, et j'ai entassé comme un sale tout ce qui avait un rapport avec un process dans le même module.

Mais par contre les structures j'ai pas toujours le choix (utilisation dans l'appel aux fonction API) et là je ne changerais pas de partout.


Tu as entièrement raison, je vais changer quelques trucs, c'est pas bien compliqué de rajouter la notion de classe, et çà sera moins bordelique.

@+
violent_ken
Messages postés
1822
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010

Le newbie -> Oui normalement il y a un test quelque part (lol) et c'est pas normal qu'il y ai une exception de levée.

J'ai testé à la va vite sur un XP virtualisé en non admin et çà marchait, qu'as tu comme OS et quel est le message ?

@+
Le newbie
Messages postés
200
Date d'inscription
mardi 17 octobre 2006
Statut
Membre
Dernière intervention
24 mars 2012
2
Re,

Je suis sur XP Pro SP2 (mon professionnel donc légèrement bloqué, même si je connais le compte admin lol).

Pour les messages, j'en ai plusieurs (de toi je suppose au départ)
- You are not logged as an administrator, ....
- Préference file missing or corrupted, ...
- une msgbox please read this.
- l'exception : Impossible de trouver une partie du chemin d'accès .... pour le fichier config.xml.

Je te précise quand même que j'ai commencé par lancer le prog en non admin.

A+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.