begin process at 2012 02 11 21:55:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > YET ANOTHER PROCESS MONITOR

YET ANOTHER PROCESS MONITOR


 Information sur la source

Note :
8,8 / 10 - par 5 personnes
8,80 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Système Source .NET ( DotNet ) Classé sous :yapm, process, service, handle, processus Niveau :Expert Date de création :01/01/2009 Date de mise à jour :21/03/2009 18:59:50 Vu / téléchargé :5 803 / 594

Auteur : violent_ken

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (71)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
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 :
* Code pour le tri des colonnes d'un listview tiré d'ici http://www.vb-helper.com/howto_net_listview_sort_c licked_column.html
* Utilisation du driver de ShareVB pour la récupération des handles système (merci à lui !)
* Utilisation d'une Dll externe pour l'ajout d'un Ribbon genre Office 2007 (voir la partie license pour l'auteur)
* Utilisation d'icones sous licence Creative Commons
* Quelques morceaux de code inspirés de Process Hacker par wj32
* Vérification wintrust des fichiers : http://www.pinvoke.net/default.aspx/wintrust/WinVe rifyTrust(2008-04-26-14-57-07.1570--91.76.224.60). html

License
* GNU GPL 3.0 pour l'ensemble du projet
* Dll RibbonControl de Jose M. Menendez Poó (http://www.codeproject.com/KB/toolbars/WinFormsRi bbon.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 :
* Pour plus de facilité pour les MAJ, le code est principalement uploadé sur sourceforge : https://sourceforge.net/projects/yaprocmon/ A quand la gestion de SVN sur vbfrance ? :-)




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.p hp?group_id=244697

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

Source

  • ' 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.
' 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.

@+

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

01 janvier 2009 20:43:18 :
mise en page
02 janvier 2009 12:58:56 :
Un poil de programmation orientée objet pour les objets Service, File et Process :-)
08 janvier 2009 19:33:03 :
Ajout de la fonction de monitoring, performances++, bugs résolus, etc
08 janvier 2009 19:38:13 :
Changement screenshot
10 janvier 2009 18:04:27 :
Debug + ajout gestion threads + theme pour les LV/TV + monitoring++
10 janvier 2009 18:06:43 :
Description
10 janvier 2009 18:15:11 :
description
11 janvier 2009 15:56:09 :
Gestion complète des fenêtres des processus
18 janvier 2009 19:09:43 :
Pleins pleins de bugs résolus, ajout de nouvelles fonctions, peaufinements divers, ajout de la production de rapport (sauf pour les processus et le monitoring)
01 février 2009 18:27:08 :
- Suppresion du setup (distribution de l'application par fichier zip) - Simplification de l'IHM (suppression d'onglets/boutons inutiles/surchageant trop) - Auto update avec téléchargement auto de la dernière version (bug trivial à corriger aux 100%) - Choix des colonnes pour les processus (dbl click sur le listview -> premier refresh à peaufiner) - Déchargement modules OK - Sauvegarde de rapports OK pour preque tous - Meilleure interface (zones redimensionnables) - Meilleure gestion des services (plus de services listés, plus d'informations, processus du service récupéré) - Toutes les fonctions sur la gestion des fichiers sont désormais disponibles - Recherche plus rapide - Optimisation de l'affichage (plus aucun scintillements et temps plus cours de remplissage des listviews) - Très (très très) nombreux bugs résolus - Nouvelle interface pour les processus (zone 'détails' en bas, détachable dans le futur) - Récupération de nouvelles stats pour les processus (informations d'I/O, .Net applications (todo)...) - Graphe d'utilisation CPU/Mémoire/I-O par processus (à peaufiner dans l'affichage) - Gestion des privileges des processus (changement de status à corriger, actuellement désactivé) - Gestion des zones mémoires (l'HEX editor de mémoire arrivera plus tard) - Gestion des services par processus - Icones dans les menus - Monitoring des services créés/détruits avec info dans le tray (à peaufiner) - Création d'un fichier de log (clic droit sur le bouton Tray -> Show log) - Optimisation générale de récupération des infos grâce à une meilleure programmation OO (dissociation complète de l'IHM et des objets associés manipulés pour les listviews)
05 février 2009 18:55:49 :
- bug de dépassement de mémoire corrigé - bug lors du loading en mode non admin corrigé - form resizement mieux géré - suppression de lignes de code inutiles - correction bugs mineurs dans l'IHM - "display all processes" correctement géré - bug lors du téléchargement terminé corrigé - CPU usage correct (nbre processeurs pris en compte + bon formatage) - form pour informations générales sur le système - ajout GDI/User objects count - ajout de la possibilité de recherche un objet à monitorer - fichier de configuration directement dans le même dossier que l'exécutable
06 février 2009 18:58:21 :
- les options sont OK maintenant - possibilité de remplacer taskmgr (safe) - démarrage vraiment plus rapide - 'selected associated item' affiche l'item avec la méthode EnsureVisible - possibilité de sélectionner les services associés à des processus depuis lvProc - ajout onglet principal "Taches" - ajout des icones pour les fenêtres - nouveau compteur pour les processus (RunTime)
07 février 2009 15:14:59 :
- ajout fonction 'Terminer l'arborescence' - ajout fonction 'Fin de tache' (tasks tab terminé) - optimisation du rafraichissement de la liste des processus - correction de l'affichage de nouveaux processus avec plus de colonnes - monitoring de la création/destruction des services OK - suppression processus avec touche Delete - affinité pour les processus (form + compteur)
08 février 2009 18:42:08 :
- ajout de la fonction "find process's window" - ajout de la gestion des connections TCP/UDP ouvertes
08 février 2009 18:43:02 :
- ajout de la fonction "find process's window" - ajout de la gestion des connections TCP/UDP ouvertes
08 février 2009 18:50:24 :
Test
10 février 2009 18:13:26 :
- optimisation refresh informations sur les modules - grande optimisation du refresh informations sur les services - choix des colonnes pour les services - optimisations diverses (meilleure gestion des erreurs) - icones 32 bits - form pour voir les infos globales sur le système
12 février 2009 22:58:23 :
- nouvelle about form + licences - résolution DNS des connections TCP - nouveaux process en vert, process deleté en rouge - (enfin !!) une bonne récupération du username - reconstruction du code de gestion des taches - récupération de la charge CPU par tâche - affichage du CpuUsage par défaut pour les processus - tri temps réel des listviews process, task, service par colonne - correction diverses
18 février 2009 00:42:37 :
- GNU GPL 3.0 - récupération du handlecount - récupération des strings d'un processus (nouveau tab) (image et mémoire) - grande optimisation récupération liste des strings (à optimiser x100 encore) - recherche dans les strings récupérées (et sauvegarde du résultat) - récupération variables d'environnement - tray icon avec graphe d'utilisation CPU/mémoire - hex editor pour lire la mémoire - priorités des threads OK - gestion des privileges terminée - séparations des infos détaillées (nouvelle interface style Process Explorer) - double click lvTask -> processus associé - refresh temps réel des modules/threads/windows/regions mémoire/connexions réseaux - optimisation récupération des infos sur les modules - nouveau compteur pour les processus (pourcentage d'utilisation moyen) - ajout de la CommandLine pour les processus - ajout d'une form de gestion des fenêtres ouvertes par YAPM - nouvelle police de caractères
20 février 2009 13:52:20 :
- graphiques beaucoup mieux gérés - emergency hotkeys - toolitps + tabOrder - moyenne affichée dans les graphes - icones Fugue - refresh handles temps réel - plus d'infos sur les handles + option nommés ou pas - option fenêtres nommées ou pas - vérification (wintrust) des fichiers
20 février 2009 15:46:55 :
- compatibilité XP ok à nouveau - positions string en hexa - voir la position de la string en mémoire - meilleure gestion des zones mémoire - Module -> voir en mémoire
22 février 2009 13:49:51 :
- code refactoring -> optimisations globales - affichage temps réel de toutes les informations
22 février 2009 21:46:55 :
- bugs fixed
27 février 2009 18:41:43 :
- fermeture handle OK - meilleure performances (plus d'erreurs systématiquement levées -> tests pour les éviter) - sélection de colonnes pour tous les listviews - correction de bugs critiques
16 mars 2009 21:01:09 :
- shutdown/logoff fonctions - listview groupé pour le monitoring (plutôt que texte) - récupération d'à nouveau tous les services existants - infos CPU (form infos générales) OK (+ pourcentages) - optimisation récupération infos services (refresh que les services modifiés) - ajout log pour processus - suppression message avertissement admin - correction bug (clic sur module frmMain) - correction bugs recherche suite à la dernière MAJ (trouver les Windows, icones des processus...) - ajout affinité des threads - infos générales maintenant toutes correctes - download des informations sur un processus asynchrone - classement des items d'un listview par taille et par valeur hexa OK - affichage tailles formatées - optimisation refresh liste des zones mémoire - corrections bugs divers & orthographe - ajout rapport général - IHM -> ajout de la version 'menus classiques' - custom inputbox - nouvelles options & préférences - ajout de la fonction State Based Actions - ctrl+A, ctrl+C pour toutes les listviews - nouveaux compteurs disponibles dans la listview des processus (io counters) - affichage de l'historique de toutes les statistiques sur les processus
21 mars 2009 19:00:04 :
- 1 graphe par CPU OK - options de configuration des intervalles (tray & system infos) - start hidden OK - State Based Actions - Code refactoring (maintenant 2 dll en plus) - log ok (+ sauvegarde) - fonction state based action - compteur runTime dans form detail - projet mieux formé

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) UTILITAIRE DE SANITIZATION DES DISQUES DURS/FICHIERS (SUPPRE...
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMPLE SHUTDOWN SCHEDULER : ARRÊTS PLANIFIÉS (LOCAL OU REMOT...
Source avec Zip Source .NET (Dotnet) COMMENT DÉMARRER UN PROCESSUS SUR PC DISTANT DE MANIÈRE CACH...
Source avec Zip Source avec une capture Source .NET (Dotnet) YET ANOTHER (REMOTE) PROCESS MONITOR
Source avec Zip Source avec une capture Source .NET (Dotnet) COMMENT DÉTECTER LES PROCESSUS CACHÉS (VIRUS, ROOTKITS...) +...

 Sources de la même categorie

Source avec Zip Source avec une capture AUTORISER/REFUSER L'EXECUTION DE PROCESSUS par pierreh51
Source avec Zip Source .NET (Dotnet) CLONE/FORK DES FLUX DE LA CONSOLE : PERMETTRE LA REDIRECTION... par ShareVB
Source avec Zip Source .NET (Dotnet) DÉFRAGMENTER UN FICHIER par ShareVB
Source avec Zip Source .NET (Dotnet) ECRAN DE VEILLE : DÉTECTER LE LANCEMENT/DÉCLENCHER/EMPÊCHER par ShareVB
Source avec Zip Source avec une capture DESACTIVER / ACTIVER LES MISES EN VEILLES PC par Arsena

 Sources en rapport avec celle ci

Source avec Zip RÉCUPÉRER PID PROCESSUS, NOM DE FICHIER.EXE ET HANDLE FENÊTR... par Philippe734
Source avec Zip Source .NET (Dotnet) COMMENT DÉMARRER UN PROCESSUS SUR PC DISTANT DE MANIÈRE CACH... par violent_ken
Source avec Zip Source avec une capture Source .NET (Dotnet) YET ANOTHER (REMOTE) PROCESS MONITOR par violent_ken
Source avec Zip Source avec une capture Source .NET (Dotnet) COMMENT DÉTECTER LES PROCESSUS CACHÉS (VIRUS, ROOTKITS...) +... par violent_ken
Source avec Zip Source avec une capture SYSTEM INFO par draluorg

Commentaires et avis

Commentaire de The Meteorologist le 02/01/2009 02:29:52 7/10

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.

++

Commentaire de Le newbie le 02/01/2009 10:13:55 7/10

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

Commentaire de violent_ken le 02/01/2009 10:18:53

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.

@+

Commentaire de violent_ken le 02/01/2009 10:20:43

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 ?

@+

Commentaire de Le newbie le 02/01/2009 10:33:53

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+

Commentaire de violent_ken le 02/01/2009 10:43:01

Hum, le premier c'est normal (pas admin).

Le second indique que ton exe n'est pas au bon endroit (il ne trouve pas le fichier de préférences avec les chemins relatifs du coup il le recréé).

Le troisième est un readme standard.



En fait, c'est le second qui m'indique que tu as du soit :
- tester dans l'IDE en debug (et du coup c'est normal faut faire en release pour que l'exe soit dans le dossier correct)
- lancer l'exe hors de son dossier d'execution (dossier qui contient un dossier config, et quelques autres fichiers)

@+

Commentaire de Le newbie le 02/01/2009 11:04:12

Bien vu en fait j'ai lancé l'exe en debug et non en release. Autant pour moi.

A+ et bonne année au fait.

Commentaire de violent_ken le 02/01/2009 11:13:45

De rien, et bonne année également :-)

@+

Commentaire de violent_ken le 02/01/2009 13:01:06

Voilà un code un peu plus orienté objet...

Je réutilise des méthodes du framework (exemple SetAttributes dans cFile qui fait appel à IO.File.SetAttributes) de manière temporaire, certaines seront remplacées plus tard par des plus performantes.

@+

Commentaire de bouv le 02/01/2009 16:14:14

Sympa et joliment présenté.
Est-il possible d'obtenir les sources des controls Ribbon ?

Bonne prog
++

Commentaire de violent_ken le 02/01/2009 16:59:22

Moui bien sur, mais le code n'est pas de moi (MS public licence).
http://www.codeproject.com/KB/toolbars/WinFormsRibbon.aspx

@+

Commentaire de bouv le 02/01/2009 18:00:45

Merci pour l'info.

Commentaire de MadM@tt le 03/01/2009 22:46:54

Très joli en tout cas !
Les fonctionnalités sont déjà vues mais ont le mérite d'être (presque ?) toutes rassemblées, ce qui est un sacré boulot. On sent les vacances ;-)

Commentaire de violent_ken le 03/01/2009 23:09:04

Hey salut :-)

Oui effectivement on sent les vacances ;-)

Sinon il manque encore quelques fonctions, comme par exemple sur les threads et les fenêtres et çà sera à peu près rassemblé en .Net avec un mix API/Framework ^^

Après faut que je rajoute quelques fonctions perso, par exemple en ce moment je fais le "monitoring" à proprement parler : l'utiisateur ajoute un "compteur" personnalisé sur les informations qu'il veut, et on trace le graphe à partir de çà ; l'utilisateur peut librement visualiser l'évolution de son information en fonction de la date/heure choisie.

@+ ^^

Commentaire de draluorg le 04/01/2009 14:20:56

Salut a tous,

Ergonomie originale ^^
Ca me donnerait presque envie d'en faire un du genre en C (si quelqu'un connait un Rubban utilisable en C)

Pour la ListView, un petit SetWindowTheme s'impose ;)

Bonne continuation ;)

++

Commentaire de violent_ken le 04/01/2009 14:54:28

Salut,

pour SetWindowTheme je ne connais pas je vais jeter un coup d'oeil ^^

Sinon pour le ribbon malheureusement je ne connais pas l'équivalent pour du C.

@+

Commentaire de draluorg le 04/01/2009 15:22:50

re,

SetWindowTheme vas donner le theme de l'explorateur a la listview

tu fais SetWindowTheme(Lv.handle, "explorer")
Ca change le style de la sélection, ca fait comme la lv du taskmgr.

++

Commentaire de violent_ken le 04/01/2009 15:42:48

Re,

chez moi la listview possède déjà le style visuel de Vista sans avoir à rien faire ?
Idem pour mon XP virtualisé.

Tu es sous quel OS ?
@+

Commentaire de draluorg le 04/01/2009 15:49:13

je suis sous vista mais j'ai pas teste ton tool je me suis basé sur la capture.

En fait oui les columheaders sont bien au style vista, mais pas la selection...
Du moins d'apres ta capture d'ecran...

Pour comprendre ouvre le taskmgr sur l'onglet process et compare la selection a ta listview...

++

Commentaire de violent_ken le 04/01/2009 16:07:16

Oui tu as entièrement raison, j'avais pas fait attention, les colonnes sont bien au bon style mais pas la sélection (?).

merci !
@+

Commentaire de violent_ken le 08/01/2009 19:44:51

Bonne MAJ :

1) Ajout de la fonction de monitoring (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 la classe PerformanceCounter.

2) Optimisation des performances globales, et plus particulièrement de la récupération des informations sur les processus (abandon de la classe Process du framework .Net, utilisation d'API).

3) Correction diverses.


Par contre il y a un bug dans la récupération des attributs de processus :
- temps CPU
- start time
(mauvaise conversion de temps -> valeurs fausses)

A corriger plus tard :-)

Commentaire de violent_ken le 08/01/2009 19:45:45

Ah oui mince j'ai oublié : je n'ai pas réussi à utiliser SetWindowTheme, je ne peux que désactiver complètement le thème (pas le changer).
@+

Commentaire de MadM@tt le 08/01/2009 19:55:31 10/10

Au passage ça mérite plus qu'un 7 !

Commentaire de xarsoft le 09/01/2009 21:44:43 10/10

tres bien je vais maintenant testé

Commentaire de violent_ken le 10/01/2009 18:09:41

MadM@tt -> Merci lol ^^

MAJ : gestion complète des threads des processus (priorité, pause/resume/kill, informations disponibles par le framework.net)

@+

Commentaire de violent_ken le 11/01/2009 16:00:09

MAJ : ajout de la gestion complète des fenêtres ouvertes (manque juste les icones).

-> Toutes les fonctions générales sont désormais disponibles (sauf les jobs), il ne reste donc plus qu'à :
- faire les fonctions particulières manquantes (cf description)
- corriger les (nombreux) bugs
- optimiser le code + tests détaillés

@+

Commentaire de violent_ken le 18/01/2009 19:12:30

MAJ :
- Pleins pleins de bugs résolus
- ajout de nouvelles fonctions diverses
- peaufinements divers
- ajout de la production de rapports (sauf pour les processus et le monitoring)

@+

Commentaire de violent_ken le 01/02/2009 18:29:03

Grosse MAJ :

Notamment la récupération de nouvelles infos (privileges, I/O, plus de services et lien avec les processus).


Change log :
- Suppresion du setup (distribution de l'application par fichier zip)
- Simplification de l'IHM (suppression d'onglets/boutons inutiles/surchageant trop)
- Auto update avec téléchargement auto de la dernière version (bug trivial à corriger aux 100%)
- Choix des colonnes pour les processus (dbl click sur le listview -> premier refresh à peaufiner)
- Déchargement modules OK
- Sauvegarde de rapports OK pour preque tous
- Meilleure interface (zones redimensionnables)
- Meilleure gestion des services (plus de services listés, plus d'informations, processus du service récupéré)
- Toutes les fonctions sur la gestion des fichiers sont désormais disponibles
- Recherche plus rapide
- Optimisation de l'affichage (plus aucun scintillements et temps plus cours de remplissage des listviews)
- Très (très très) nombreux bugs résolus
- Nouvelle interface pour les processus (zone 'détails' en bas, détachable dans le futur)
- Récupération de nouvelles stats pour les processus (informations d'I/O, .Net applications (todo)...)
- Graphe d'utilisation CPU/Mémoire/I-O par processus (à peaufiner dans l'affichage)
- Gestion des privileges des processus (changement de status à corriger, actuellement désactivé)
- Gestion des zones mémoires (l'HEX editor de mémoire arrivera plus tard)
- Gestion des services par processus
- Icones dans les menus
- Monitoring des services créés/détruits avec info dans le tray (à peaufiner)
- Création d'un fichier de log (clic droit sur le bouton Tray -> Show log)
- Optimisation générale de récupération des infos grâce à une meilleure programmation OO (dissociation complète de l'IHM et des objets associés manipulés pour les listviews)
- ....

@+

Commentaire de violent_ken le 05/02/2009 18:57:04

MAJ :

Notamment la stabilité du logiciel (plus de crash après longue utilisation !)
Passage en beta 3.

- bug de dépassement de mémoire corrigé
- bug lors du loading en mode non admin corrigé
- form resizement mieux géré
- suppression de lignes de code inutiles
- correction bugs mineurs dans l'IHM
- "display all processes" correctement géré
- bug lors du téléchargement terminé corrigé
- CPU usage correct (nbre processeurs pris en compte + bon formatage)
- form pour informations générales sur le système
- ajout GDI/User objects count
- ajout de la possibilité de recherche un objet à monitorer
- fichier de configuration directement dans le même dossier que l'exécutable

Commentaire de violent_ken le 06/02/2009 19:00:27

MAJ :

Logiciel complètement stable (sauf défauts de page un peu abusés !)

- ajout onglet principal "Taches"
- démarrage vraiment bien plus rapide qu'avant
- les options sont toutes OK maintenant
- possibilité de remplacer taskmgr par YAPM (safe)
- 'selected associated item' affiche l'item avec la méthode EnsureVisible
- possibilité de sélectionner les services associés à des processus depuis lvProc
- ajout des icones pour les fenêtres
- nouveau compteur pour les processus (RunTime)

@+

Commentaire de bouv le 06/02/2009 19:45:41 10/10

Quel rythme !
Question : Peut-on comme avec le taskmgr terminer l'arborescence d'un processus ?

Commentaire de violent_ken le 06/02/2009 22:33:26

Salut !

En fait actuellement je planche sur un système d'affichage des processus sous forme de contrôle hybride TreeView/ListView (en gros un listview hierarchisé par liens de parentés, avec collapse/extend, comme dans 'process explorer').
Du coup je voulais implémenter cette fonction quand ce contrôle aurait été prêt (terminer l'arborescence d'un process au final est surtout pratique quand on voit graphiquement tous les child items à tuer), mais effetivement taskmgr offre la possibilité de le faire bien qu'on ne connaisse pas aisément les parentés entre processus (simple listview).

Bon bref du coup je l'implémente, si taskmgr le permet, y a pas de raison ^^

Merci, @+

Commentaire de violent_ken le 06/02/2009 23:33:56

J'ai ajouté la fonction, elle appaitra dans la prochaine MAJ

Si tu as d'autres remarques de ce type (nouvelles fonctions... etc), je suis vraiment preneur !

@+

Commentaire de bouv le 07/02/2009 09:42:07

Parfait !
Encore félicitation à toi, il est rare de trouver des sources aussi complètes, et mises à jour aussi fréquemment.
Une fois postées, elles sont en général laissées à l'abandon.

Sinon, je ne vois pas encore l'utilité mais le taskmgr permet de définir sur quel core du proco un processus doit travailler (cf "Définir l'affinité").

Commentaire de violent_ken le 07/02/2009 12:23:05

Oui, effectivement, çà m'est arrivé de plus ou moins abandonner des sources ^^
Mais pour une fois je vais essayer de terminer complètement ce projet !

Sinon pour l'affinité, l'option est grisée pour le moment (clic droit sur un processus), mais le code est presque terminé. En fait j'ai le code VB6 fonctionnel correspondant, je suis en train de le convertir proprement ^^

@+

Commentaire de violent_ken le 07/02/2009 15:15:44

- ajout fonction 'Terminer l'arborescence'
- ajout fonction 'Fin de tache' (tasks tab terminé)
- optimisation du rafraichissement de la liste des processus
- correction de l'affichage de nouveaux processus avec plus de colonnes
- monitoring de la création/destruction des services OK
- suppression processus avec touche Delete
- gestion de l'affinité pour les processus (form + compteur)

Commentaire de bouv le 07/02/2009 17:26:34

Bien joué !

Commentaire de violent_ken le 08/02/2009 18:45:41

1) ajout de la fonction "find process's window" -> Exactement comme avec Process Explorer de sysinternals, on peut sélectionner par survol les fenêtres ouvertes et récupérer le processus associé (affichage d'un rectangle autour de la fenêtre survolée).

2) ajout de la gestion des connections TCP/UDP ouvertes par les processus (à améliorer dans le future, pour l'instant très basique mais fonctionnel).

Commentaire de draluorg le 08/02/2009 23:00:12

Re moi,

Bravo pour toutes ces maj!

Histoire de chipoter encore un peu sur des détails, n'aurais tu pas oublié de mettre ton imagelist sur couleur 32bits ?

++

Commentaire de violent_ken le 08/02/2009 23:18:50

!! Cà c'est pas faux ! Je m'disais bien aussi que certaines icones étaient un peu moches :-p
Raah mais pourquoi les imagelist sont elles 8-bits par défaut ??

Merci bien ^^


@+

Commentaire de violent_ken le 10/02/2009 18:15:50

MAJ :

- bonne optimisation du refresh des informations sur les modules
- grande optimisation du refresh des informations sur les services (+ nouvelles informations disponibles)
- choix des colonnes pour les services (à perfectionner, quelques bugs)
- optimisations diverses (meilleure gestion des erreurs notamment)
- icones 32 bits (^^)
- form pour voir les infos globales sur le système (infos CPU un peu daubées, et graphes à perfectionner)

@+

Commentaire de violent_ken le 12/02/2009 23:04:07

MAJ :

- nouvelle about form + licences des codes utilisés qui sont pas dans le domaine public (ribbon + icones pas encore utilisées mais bientôt intégrées)
- adresses remote des connexions TCP ajoutée
- résolution DNS asynchrone des connexions TCP ouvertes (oh yeah c'est plus intéressant qu'une IP)
- nouveaux process en vert, process deleté en rouge (idem pour tasks et connexions)
- (enfin !!) une bonne récupération du username des processus (avec domaine en prime)
- reconstruction globale du code de gestion des taches (nouvelle classe héritant de cWindows)
- récupération de la charge CPU par tâche
- affichage du CpuUsage par défaut pour les processus
- tri temps réel des listviews process, task, service (par colonne)
- corrections diverses
- optimisation du démarrage de l'application (suppression de refresh inutiles)


Et aussi, passage de la solution à une version 10 (avec Visual Studio 2008).

Pour utiliser la version 2005 de VS, changer dans le fichier solution :
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
par :
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005

et çà devrait fonctionner.
@+

Commentaire de violent_ken le 18/02/2009 00:44:36

Grosse MAJ :

Notamment :
- GNU GPL 2.0 -> 3.0
- éditeur hexa intégré pour lire la mémoire
- GUI comme Process Explorer de Sysinternals (détails sur un process dans une vue séparée)



Changelog complet :
- GNU GPL 3.0
- récupération du handlecount
- récupération des strings d'un processus (nouveau tab) (image et mémoire)
- grande optimisation récupération liste des strings (à optimiser x100 encore)
- recherche dans les strings récupérées (et sauvegarde du résultat)
- récupération variables d'environnement
- tray icon avec graphe d'utilisation CPU/mémoire
- hex editor pour lire la mémoire
- priorités des threads OK
- gestion des privileges terminée
- séparations des infos détaillées (nouvelle interface style Process Explorer)
- double click lvTask -> processus associé
- refresh temps réel des modules/threads/windows/regions mémoire/connexions réseaux
- optimisation récupération des infos sur les modules
- nouveau compteur pour les processus (pourcentage d'utilisation moyen)
- ajout de la CommandLine pour les processus
- ajout d'une form de gestion des fenêtres ouvertes par YAPM
- nouvelle police de caractères

@+

Commentaire de violent_ken le 20/02/2009 14:02:31

MAJ :

- emergency hotkeys (raccourcis à affecter pour faire des tâches urgente. Par exemple, mettre Ctrl+Alt+Echap pour détruire le processus dont la fenêtre est actuellement active. Les actions associées sont à implémenter dans le code.)
- graphiques beaucoup mieux gérés
- toolitps + tabOrder
- moyenne affichée dans les graphes
- icones Fugue
- refresh handles temps réel
- plus d'infos sur les handles + option nommés ou pas
- option fenêtres nommées ou pas
- vérification (wintrust) des fichiers

@+

Commentaire de MadM@tt le 20/02/2009 15:27:09

Impressionnant, un peu usine à gaz mais vu la quantité d'infos on peut pas tout avoir.

Juste une petite faute d'orthographe dans le menu contextuel des processus ("priotiy")
Au niveau des icônes des fichiers et fenêtres, je sais pas comment tu les récupère mais ils sont dessinés sur un fond noir (le canal alpha est aplati sur un fond noir), ce qui rend moyen. Je sais que c'est possible de s'en passer, soit d'une façon bourrine en dessinant l'icône dans une pbx à fond blanc, soit en gérant mieux ce canal avec les api mais je sais pas comment faire (mais je suis presque sur de l'avoir vu qqpart).
Quand je l'utilise j'ai de temps en temps un processus "services.exe" qui se met à 100% du CPU pendant 1 seconde environ, ce qui gèle ton appli pendant cette durée. Je sais pas si ça vient de ton appli ou de mon ordi mais je n'ai experiencé ça qu'avec ton appli.

Commentaire de violent_ken le 20/02/2009 15:48:02

Salut, oui effectivement c'est de plus en plus usine à gaz... Mais bon, j'assume ;-)

Sinon pour les icones, je n'ai pas de problème sous Vista ni même avec XP SP3 virtualisés ? C'est dans quelle fenêtre que çà le fait ?

Idem pour services.exe. Cà le fait combien de fois ? (périodique, sporadique ?) Et à quel moment (loading de l'appli ou ?)

@+ et merci pour ces infos (tu as quel OS ?)



(Au passage une MAJ, je viens de m'apercevoir que çà crashait sous XP à cause de fonctions de Kernel32 dispos uniquement sous Vista).
- compatibilité XP ok à nouveau
- positions string en hexa
- voir la position de la string en mémoire
- meilleure gestion des zones mémoire
- Module -> voir en mémoire

Commentaire de MadM@tt le 20/02/2009 16:03:35

Je suis sur WinXP SP2.
Pour services.exe c'est périodiquement toutes les 10-15 secondes environ.
Et pour les icones, c'est pour tous les icones qui ont un canal alpha j'ai l'impression (firefox par exemple, icone de dossier, l'icone de ton appli). Ça le fait pas pour l'icone d'une form VB6 par exemple, ou pour un icone qui était fait pour windows 98. Mais le noir, c'est pas tout le fond, c'est juste pour les endroits ou y'a de la transparence avec un pourcentage. Bref j'espère que je suis clair ^^

Commentaire de violent_ken le 20/02/2009 16:33:59

Salut, alors pour les icones franchement je ne vois pas. Ce que tu m'as dis est parfaitement clair, mais chez moi çà ne le fait jamais... (Vista ou XP Sp3). Cà m'étonnerais que ce soit le SP2 qui soit en cause (quoique ?).

Sinon pour services.exe, il est sollicité périodiquement effectivement : en fait à chaque refresh complet de la liste des services (toutes les 25 secondes par défaut). Cette partie de code est à optimiser assez largement, mais 100% c'est assez étrange quand même... ??

Chez moi voilà ce que çà fait :
http://ups.imagup.com/02/1235164883_mad.png

Je suis à quelques % maximum de manière périodique.

@+

Commentaire de MadM@tt le 20/02/2009 16:48:18

Ok c'est surement les 25 secondes, mais je comprends pas pourquoi ça rame pourtant le processeur passe bien de 800 à 1800 Mhz pendant le pic, je suis pas en économie d'énergie.

Concernant les icones, effectivement tu n'as pas le problème, je me pose d'ailleurs une question : dans les propriétés système il me dit que j'ai Windows XP SP2, pourtant j'utilise bien windows update et donc normalement je devrais avoir le SP3 (je crois même l'avoir installé un jour). Bref, aucune idée...

C'est ça qui est énervant quand on développe ce genre d'appli, les utilisateurs on toujours une merde sur ton appli qui vient surement d'une merde qu'ils ont fait, ou d'une merde qu'a fait un autre programme. Il faut se blinder, mais impossible de prévoir tous les coups. Si personne d'autre te fait la remarque laisse tomber, j'ai un système tellement moisi je ne le redémarre même plus (vive la veille prolongée) à chaque fois j'ai peur qu'il n'aille pas au bout, et il met 5 minutes. Bref je suis pas une référence il faudrait que je formate.

Commentaire de violent_ken le 20/02/2009 17:05:28

Clair, toujours un petit truc qui marche pas sur d'autres PC... Frustrant^^

Bah pour les 100% çà va disparaitre normalement comme problème, puisque de toutes façons faut que j'optimise franchement le refresh des services ^^

Et pi ben pour les icones, aucune idée, je garde en tête le problème, j'essayerais sur d'autres postes pour voir si çà le fait aussi.

Merci
@+

Commentaire de violent_ken le 22/02/2009 14:24:10

MAJ : toute la gestion du refresh des différentes listes (processus, services, taches, threads, modules, handles, fenêtres, zones mémoire, connexions réseau) a été repensée et recodée (meilleure programmation OO).

Il en résulte :
- meilleure gestion de la durée de vie des objets (et du coup pas d'ouverture/fermeture de handles à chaque refresh des process par exemple)
- consommation mémoire moindre
- refresh temps réel de toutes les listes dans un temps raisonnable (même les handles !)
- gestion des éléments nouveaux/détruits en couleur pour toutes les listes
- grande optimisation niveau usage CPU (exemple : le refresh des services prend 5 fois moins de temps environ)


Par exemple, la consommation CPU pour refresh les processus/tâches/connexions réseau toutes les secondes est environ du double de celle du taskmgr (donc correct).

Reste quelques bugs (notamment remplissage d'une liste en 2 temps pour le premier refresh).

@+

Commentaire de draluorg le 22/02/2009 14:46:15

Salut,

"pas d'ouverture/fermeture de handles à chaque refresh des process par exemple)"
Tu as besoin des handles pour raffraichir quoi au juste ?
Perso sur mon dernier process explorer je ne reouvre pas les process car pas besoin dans le sens ou les infos dynamique sont renvoyees dans la structure _SYSTEM_PROCESS
celle la meme que tu recupere avec NtQuerySystemInformation

A moins que tu n'utilise pas cette methode de listage ?

Commentaire de violent_ken le 22/02/2009 15:06:22

Salut,

en fait j'ai une classe cProcess qui ouvre un handle sur le process lors de l'instanciation, et le ferme lors du Finalize().

Le handle sert à plein de choses :
- kill/priority/resume/...
- readProcessMemory (CommandLine ou variables d'environnement par exemple)
Certes c'est inutile de conserver le handle pour ce type d'infos/actions (actions ponctuelles et readPM une seule fois car infos fixées), mais certaines infos changeante en ont besoin, comme :
- GDIObjects par exemple

Le handle est gardé ouvert en permanence.

Le problème dans la version précédente, c'est que des instances de cProcess étaient détruites (par le GC) et recrées à chaque refresh (car mauvaise gestion de la méthode de refresh), ce qui ouvrait/fermait les handles associés.
Maintenant elles sont créées qu'une une fois par processus (en théorie).

@+

Commentaire de draluorg le 22/02/2009 15:47:55

erf je me disais justement pourvu qu'il ne me sorte pas que c'est pour le GDIObjects :s

C'est en effet une des rares infos dynamique interessante qui necessite le handle
Perso mon choix serait de ne l'afficher qu'a la demande sur une zone de proprite par exemple.

L'avantage est que tu n'interroge plus les process (dans un timer) tu te sers juste des infos recuperees lors du listage, sauf si new process alors tu demandes les infos statiques
Enfin c'est un choix comme un autre, mon explorer n'a pas pour vocation d afficher bcp d infos mais de les afficher le plus legerement possible...

++

Commentaire de violent_ken le 22/02/2009 16:07:14

Satané GDIObjects :-)
Effectivement, c'est une solution (de n'afficher qu'à la demande).

M'enfin, dans la mesure ou j'utilise pas NtQuerySystemInformation (ou plutôt pas que), j'ai aussi besoin du handle pour autre chose ^^

Et de toutes façons, le temps CPU utilisé par mon appli est très principalement pris par la partie graphique (gestion propre des listview) et par la couche .Net. Donc je suis plus trop à çà prêt ^^


Cela étant, il est possible (je pense) de récupérer l'info GDIObjects d'une autre manière : ni taskmgr ni process explorer n'ont de handle de process ouvert (et ils affichent l'info pourtant).


Sinon ton process mgr est codé en C++ ?

@+

Commentaire de draluorg le 22/02/2009 19:12:01

Wai c'est clair que les listview mangent surement plus que de reinterroger les process...
Je ne sais pas trop ce que tu utilise comme methode pour le refresh, mais si tu stok les infos dans une structure pour comparer et ne modifier la listview que pour les infos differentes de celle affichees ca ne prend presque plus rien.
Mais bon je dis ca juste pour le plaisir d'échanger sur les differentes methodes possible, j'ai fais des tonnes de tools qui listent les process et je remets à chaque fois mes methodes en question afin d'obtenir le meilleur compromis.

Pour mon process mgr il est codé en C.

Commentaire de violent_ken le 22/02/2009 19:27:04

Pour le refreshs des listviews, je fais un truc assez compliqué, à base de 3 (ou 4) dictionnaires (Dictionnary).
Le but est de ne supprimer aucun item, juste rafraichir les subitems.

C'est le mieux que j'ai trouvé pour avoir
- un code générique
- OO
- pas trop lent
- qui permet de rajouter/supprimer des colonnes au listview
- qui permet d'afficher facilement les items qui viennent d'être ajoutés/supprimés

Il y a surement mieux mais c'est assez galère de trouver la solution la meilleure^^

@+

Commentaire de draluorg le 22/02/2009 19:34:11

Wai c'est exactement ça, pas facile de trouver la meilleur solution surtout qu'on est souvent tres seul face à nos choix :s
Des fois j'essai de demander a ma copine ce qu'elle en pense mais bon, ca m'aide rarement je dois dire! :)

Commentaire de violent_ken le 22/02/2009 20:03:50

Héhé oui j'imagine ;-)

@+

Commentaire de violent_ken le 27/02/2009 18:43:27

MAJ de stabilité notamment :

- fermeture handle OK
- meilleure performances (plus aucune erreur systématiquement levée -> tests pour les éviter)
- sélection de colonnes pour tous les listviews
- correction de bugs critiques

@+

Commentaire de violent_ken le 16/03/2009 21:03:54

MAJ conséquente (notamment historique des statistiques + log des processus + performances nettement améliorées) :

- shutdown/logoff fonctions
- listview groupé pour le monitoring (plutôt que texte)
- récupération d'à nouveau tous les services existants
- infos CPU (form infos générales) OK (+ pourcentages)
- optimisation récupération infos services (refresh que les services modifiés)
- ajout log pour processus
- suppression message avertissement admin
- correction bug (clic sur module frmMain)
- correction bugs recherche suite à la dernière MAJ (trouver les Windows, icones des processus...)
- ajout affinité des threads
- infos générales maintenant toutes correctes
- download des informations sur un processus asynchrone
- classement des items d'un listview par taille et par valeur hexa OK
- affichage tailles formatées
- optimisation refresh liste des zones mémoire
- corrections bugs divers & orthographe
- ajout rapport général
- IHM -> ajout de la version 'menus classiques'
- custom inputbox
- nouvelles options & préférences
- ajout de la fonction State Based Actions
- ctrl+A, ctrl+C pour toutes les listviews
- nouveaux compteurs disponibles dans la listview des processus (io counters)
- affichage de l'historique de toutes les statistiques sur les processus

La prochaine MAJ viendra dans très très peu de temps, se sera une Beta 4.

Ensuite viendra la RC1.

@+

Commentaire de violent_ken le 21/03/2009 19:15:13

MAJ (passage à la beta 5).
C'est la dernière version avant la RC1, toutes les fonctionnalités nécessaires à la release RC1 sont désormais disponibles.

Changelog détaillé :
- 1 graphe par CPU est OK
- options de configuration des intervalles (tray & system infos)
- start hidden OK
- ajout de la fonctionnalité State Based Actions (SBA), voir ci dessous
- Code refactoring (maintenant 2 dll en plus, et projet réorganisé)
- log ok (+ sauvegarde possible)
- compteur runTime dans form detail
- corrections de bugs
- encore des optimisations



Deux principaux points dans cette MAJ :
- refactoring du code (solution à 4 projets, le coeur applicatif est compilé en dll, les providers également) -> meilleure modularité
- ajout de la fonction SBA suite à la demande d'un utilisateur



La fonction SBA permet de lancer des commandes personnalisées (kill, changement de priorité, reboot du pc, lancement d'une commande via cmd, création d'un log, beep...25 disponibles au total) en fonction de l'état des processus (30 variables disponibles, comme la charge CPU, la priorité, la taille mémoire...).

Concrêtement, ceci permet par exemple :
- de réduire la priorité d'un processus dans c:\windows\ si il prend plus de x% du temps CPU
- créer un log si un processus prend plus de x Mo de mémoire
- tuer systématiquement tous les processus lancé par le processus explorer.exe
- changer l'affinité de Internet Explorer à son lancement
- éteindre le PC quand une application tourne depuis plus de x secondes
- ....

Cette fonction est donc extrêmement pratique, les applications sont nombreuses. Elle est unique, je connais pas d'autre logiciel la possédant. Mais elle est TRES DANGEREUSE. Imaginez que vous configuriez de tuer tous les processus localisés dans c:\*...
Du coup j'ai mis un mode simulation : quand la form de gestion des SBA est affichée, les SBA ne sont PAS ACTIVES pour de vrai, mais leur traitement est simulé et le résultat des règles est affiché dans une console (touche F2 pour l'afficher/masquer).

Donc je recommande de systématiquement activer la console de simulation et de vérifier que les règles ne font pas n'importe quoi. Ensuite, on ferme la form de configuration des SBA et les SBA sont lancées (elles se lancent également automatiquement à l'ouverture de l'application).

Bref, très utile (je pense !) mais pas safe donc gaffe !!!!
@+

Commentaire de violent_ken le 14/05/2009 21:24:38

Salut,

après de (très) nombreuses heures de code, la prochaine version est presque finie (il reste pas mal de bugs et de features à peaufiner, mais c'est fonctionnel et bien avancé).

Voici les 2 nouveautés les plus importantes :

- REMOTE MONITORING : monitoring des processus/services/modules/handles/threads/.../ distants, via WMI ou via un serveur. WMI est simplifié et offre la liste des process/services/modules/threads uniquement, mais le serveur permet TOUTES les fonctions disponibles en local.
Je crois bien que ce sera le seul logiciel à proposer cela, qui plus est gratuit et open source.

- application entièrement multi-threadée



et aussi :
- code refactoring avec utilisation des fonctions non documentées de Windows pour de meilleures performances (notamment pour les processus)
- plein de nouvelles informations disponibles sur quasiment tous les objets (process, services, threads...+ meta-counters)
- sauvegarde de toutes les préférences (colonnes, forms...)
- IHM avec un Orb à la Office 2007
....


Sinon le code est disponible maintenant via SVN :
svn co https://yaprocmon.svn.sourceforge.net/svnroot/yaprocmon yaprocmon


@+ (je posterais une nouvelle source je pense, car le code a vraiment entièrement été repris, plus rien à voir avec celui-là).

Commentaire de violent_ken le 17/05/2009 16:06:27

Première version avec la gestion des PC distants dispo ici :

http://www.vbfrance.com/codes/YET-ANOTHER-PROCESS-MONITOR-REMOTE-VERSION_50027.aspx

@+

Commentaire de aus3004 le 23/11/2010 20:31:18

Bonsoir, erreur avec VB 2008 sous win 7.
Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est : len
J'ai hâte de pouvoir explorer ce projet ;)

Commentaire de draluorg le 24/11/2010 19:40:36

Salut à tous,

Ken:
Je viens de dl la source pour tester sous seven x64

Il semblerait que ton driver "KernelMemory.sys" ne soit pas compatible :s
Il faudrait le debuger/recompiler sous seven en espérant que cette méthode soit encore possible sur cette plateforme :s

Si mes souvenirs sont bon, ce driver avait pour seul but d'éviter les deadlocks sous XP, il serait interessant de voir le comportement sous Seven sans utiliser ces drivers, avec un peu (beaucoup) de chance il se pourrait que ce problème ne se produise pas sur cet OS

AUS3004:
En attendant AUS3004, tu peux d'aller dans le constructeur clsOpenedHandles.vb et commenter la ligne : Class_Initialize_Renamed()

La tu pourra lancer l'appli elle se lancera mais plantera assez vite, car il en resulte des collections vides etc, il te faudra donc désactiver tout ce qui fait appel aux fonctions et objets de cette classe excepté "EnableDebug" et "EnableShutdown".

++

Commentaire de violent_ken le 24/11/2010 23:00:27

Bonjour à tous,

Premièrement désolé de ne pas être très présent, j'ai pas mal de boulot en ce moment :-p

Pour ce qui est de l'exception, elle concerne quel formulaire, et dans quelles circonstances ?
As-tu essayer de compiler tout le projet dans un premier temps (certaines forms ne sont pas affichables tant que les contrôles utilisateurs ne sont pas compilés) ?

Pour le driver KernelMemory, il est utilisé pour la récupération des noms des handles. Sous Window 7 32-bit aucun problème, mais en version 64-bit çà ne marche plus en effet. En fait le driver est compilé pour les systèmes 32-bit seulement... et ne pourra pas être utilisé sur une plateforme x64 vu qu'en 64-bit les drivers doivent être obligatoirement signés ! Ce qui n'est bien évidemment pas le cas pour ce driver.

Normalement dans la dernière version du programme, le driver n'est pas chargé sur les versions 64-bits, et le programme fonctionne sans problème sans, en mode dégradé (les handles ne sont pas tous listés et/ou leur nom de peut pas être récupéré).

EnableDebug et EnableShutdown normalement devrait passer sans pb, même si le résultat ne fonctionnera que si le compte est autorisé. Encore une fois, si le compte n'est pas admin, le programme fonctionne en mode dégradé (certaines fonctions et/ou informations pas disponibles).


Sinon je conseille de télécharger la dernière version dispo publiquement du code ici : http://downloads.sourceforge.net/project/yaprocmon/YAPM-beta/YAPM-2.4.1/YAPM-v2.4.1-source.zip
C'est normalement beaucoup plus à jour que le code de vbfrance ^^

@+ !

Commentaire de aus3004 le 24/11/2010 23:16:17

Bonsoir, je suis sous Win 7 64bit, j'ai regardé la source de sourceforge.net et elle est bourrée à craquer d'erreurs de tous genres et presque tous les formulaires sont en mode sans échec :P
Bref, c'est pas grave si cette source pète un cable, c'était juste à titre informatif que je voulais voir ce que ce projet avait dans le ventre.
bye

Commentaire de violent_ken le 25/11/2010 07:26:17

Comment tu compiles la source ? Parce que çà marche sans aucun problème (un certain nombre de gens ont déjà utilisé le code source sans soucis).

Commentaire de aus3004 le 25/11/2010 13:37:37

Comment je compile, bah je clique sur F5.
Il y a un autre moyen ?
Merci quand même de m'aider c'est cool ++

Commentaire de draluorg le 25/11/2010 19:05:11

oui f6 pour générer la solution :p
Pour etre certain vas dans générer>"regénérer la solution".


KEN,

Ok visiblement tes sources ici n'étaient pas du tout à jour, étant abonné à la source j'ai jetté un oeil pensant que tu n'etais pas sous Seven...

Bonne continuation à tous ;)

++

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Passer word en priorité haute (SetPriorityClass) [ par Thibaut77 ] Bonjour à tous, J’ai développé une petite appli qui au cours du déroulement rédige un rapport sous word. Pour des problèmes de performances, j’ai bes Démarrer une application via un service [ par mixmox ] Bonjour, j'ai créé un service via vb net qui marche impecable avec un timer (10s) Mon problème est le suivant: je voudrais tester si une application Enumeration avec GetProcesses: Erreur MainModule Win32Exception [ par Duke49 ] Salut à tous ! J'ai une fonction qui énumère les process pour en rechercher un seul. Renvoi son chemin lorsqu'il est trouvé. Mon problème arrive lor Infos sur les processus [ par MadM@tt ] Bonjour à tous,voilà je crée une bibliothèque de gestion de processus et j'aimerais proposer des fonctions permettant de récupérer, par exemple, le no Savoir si un processus est enregistré en tant que service (Win9x/Me) [ par luluthefirst ] Salut, voilà je voudrais savoir comment faire pour savoir si un processus est enregistré en tant que service sous Win9x/Me, RegisterServiceProcess ne Connaitre le PID d'Excel qu'on lance grâce à CreateObject [ par SebSemos ] Salut à tous, voila j'ai un programme qui lance excel à son chargement, et qui le quitte à sa fermeture. Je veux vérifier si Excel est toujours présen URGENT : LANCER UN PROCESSUS WINDOWS QUI S'EST ARRETE [ par dark_muse ] Bonjour &#224; tous !!Je suis encore d&#233;butante en vb mais y'a un d&#233;but &#224; tout hein !!Alors voil&#224;. Je voudrai trouver quelque chose SYNTHESE PROCESSUS, HANDLE, THREAD, (MODULE) & gestion des processus ?! [ par youkizouki ] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [.NET 2] Process et application [ par fdiedler2000 ] Bonjour à tous !Je voudrais faire un logiciel de gestion des programmes et donc je voudrais lister tous les applications installés sur une PC et ensui Avoir le path d'un Process [ par allthew3 ] Bonjour,Je cherche comment obtenir le path (le chemin d'accès) d'un processus P.Merci d'avancePS : Exemple :Dim Psss <font color="#0000ff" s


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,326 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales