begin process at 2012 02 13 05:24:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > [C/WIN32] CTRLALTDEL : UN GESTIONNAIRE DE PROCESSUS.

[C/WIN32] CTRLALTDEL : UN GESTIONNAIRE DE PROCESSUS.


 Information sur la source

Note :
10 / 10 - par 4 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :processus, api, gestion, executer Niveau :Débutant Date de création :03/06/2006 Date de mise à jour :24/06/2006 15:22:32 Vu / téléchargé :7 086 / 1 068

Auteur : deck_bsd

Ecrire un message privé
Site perso
Commentaire sur cette source (47)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Yop à tous ,

Voila un mini ctrl + alt + del lol.

Qu'est ce qu'on y trouve? :

- Affichage des processus et des propriétés.
- Stopper un processus.
- Executer un processus (avec prise en charge des arguments).
- Changer les prioritées.

Source



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • ctrlaltdel.devTélécharger ce fichier [Réservé aux membres club]1 001 octets
  • ctrlaltdel.ex_Télécharger ce fichier [Réservé aux membres club]48 702 octets
  • ctrlaltdel.layoutTélécharger ce fichier [Réservé aux membres club]115 octets
  • main.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier40 837 octets
  • main.cpp.bakTélécharger ce fichier [Réservé aux membres club]21 026 octets
  • main.oTélécharger ce fichier [Réservé aux membres club]20 830 octets
  • main2.cpp.bakTélécharger ce fichier [Réservé aux membres club]24 002 octets
  • main3.cpp.bakTélécharger ce fichier [Réservé aux membres club]35 740 octets
  • Makefile.winTélécharger ce fichier [Réservé aux membres club]925 octets

Télécharger le zip


 Historique

06 juin 2006 14:22:32 :
- Modification apportée : la liste des processus ce trouve maintenant dans une ListView. Pour des sourci de compréhension de la manière dont on traite les processus, j'ai laissé l'ancien code (celui avec la listebox) dans le zip. Plus simple a comprendre.
08 juin 2006 20:15:18 :
- Maintenant on peut voir le chemin complet (si il y en a un) du processus.
14 juin 2006 17:37:31 :
- Maintenant mon programme affiche la priorité des processus, avec possibilité de les modifier.
14 juin 2006 19:25:15 :
- Correction du bug en ce qui concerne les processus ayant le même nom. La recherche ne se fait plus part nom, mais par l'id. Merci vecchio ;)
14 juin 2006 20:17:24 :
- Mise à jour de l'estétique du programme, maintenant on peut selectionner le processus depuis n'importe quel colone.
15 juin 2006 17:39:13 :
- Le chemins de TOUS les processus sont désormai accessible. Ajout des droits de debug.
17 juin 2006 16:23:40 :
- Après beaucoup de recherches et de prises de tête, mon programme affiche maintenant l'utilisateur de chaque processus (ou le domaine).
18 juin 2006 09:27:32 :
- Ajout de la même petite option du task manager , a savoir, afficher seulement les processus de l'utilisateur courrant.
20 juin 2006 17:26:05 :
- Ajout de l'état de la RAM . Une autre mise à jour va bientot venir en prenant en compte les dires de BruNews, cependant la fonction InitCommonControles() à été déplacée.
21 juin 2006 14:04:06 :
- ATTENTION ! correction d'un bug très important, en effet WM_TIMER faisait complètement planter le programme (plus possible de stoper un processus n'y d'en changer les propriétées) . J'ai corrigé ce bug et créant une procédure pour le timer (TIMERPROC). Par contre je ne sais absolument pas pourquoi cela infectai le bon déroulement de mon programme. Si quelqu'un a une idée.
22 juin 2006 19:47:34 :
- Bo simple ajout des icones des différents processus et du nombre de mo de DDR :D .
24 juin 2006 15:22:32 :
- Ajout de l'utilisation mémoire de chaque processus.

 Sources du même auteur

Source avec Zip Source avec une capture [C/WIN32][DRIVER] DÉTECTION DE CRÉATION OU DE SUPPRESSION DE...
Source avec Zip Source avec une capture [C/WIN32] INJECTION DE DLL 2 MÉTHODES (REMOTETHREAD PROPRE &...
Source avec Zip Source avec une capture [C/WIN32][VISTA] EXEMPLE D'UTILISATION DES TRANSACTIONS.
Source avec Zip Source avec une capture [C/WIN32] GÉNÉRATEUR DE CODE POUR UNE INITIALISATION SPÉCIAL...
Source avec Zip Source avec une capture [C/WIN32] AFFICHE TOUT LES LIENS D'UNE PAGE (X)HTML.

 Sources de la même categorie

Source avec Zip WIN32 TLS LENT par dguilmain
Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64) par BruNews
Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip DELETE DIRECTORY (WIN64) par BruNews
Source avec Zip ENUM DIRECTORY (WIN64) par BruNews

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SHOP MANAGER CONSOLE SUR WINDOWS par antho974
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C par benzarabel
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel
Source avec Zip Source avec une capture LISTE PROCESSUS V2 (WIN64) par BruNews
GESTION DE LE MÉMOIRE UTILISÉE PAR UN PROCESSUS par lilxam

Commentaires et avis

Commentaire de vecchio56 le 03/06/2006 17:55:23 administrateur CS

Sources en rapport:
http://www.cppfrance.com/codes/LISTE-PROCESSUS-API-NATIVE-WIN32_17658.aspx
http://www.cppfrance.com/codes/ENUMERATION-PROCESSUS-DECHARGEMENT-FORCE-DLL_30494.aspx

Commentaire de deck_bsd le 03/06/2006 18:02:16

ha désoler j'avai pas vu. J'avai fait une recherche avant et j'était bien tomber sur une source en rapport mais c'était stoper un processus et en mode console en plus. Etant donné que tu es admin il ne tien qu'à toi de supprimé ma source. Mais p-e (surement) que cette source est plus facile à comprendre que celle de BruNews qui s'adresse à des gens qui comprennent l'asm mdr. Enfin voila, a toi de juger.

Commentaire de vecchio56 le 03/06/2006 18:05:07 administrateur CS

Ya pas de problème, c'était jsute pour signaler aux personnes intéressées par le sujet qu'il y avait d'autres trucs sur le sujet
Ta méthode n'est pas la même que celle de BruNews de toute facons

Commentaire de deck_bsd le 03/06/2006 18:08:01

Non effectivement moi j'utilise ToolHelp lui ... ben lui il va a la source, il recode tout :D Dans quelque année l'OS Brudows sortira mdr.

Commentaire de militaire75 le 03/06/2006 20:42:20

C'est très bien et pratique. Juste un détails, dans la fonction LoadProcess, la taille de szBuffer est un peu petite, ça me faisait planter le programme, j'ai mis 64 à la place de 20

Commentaire de vecchio56 le 06/06/2006 18:51:09 administrateur CS

Eh ben, on peut toujours pas trier les colonnes?
Tu devrais essayer de la faire

Commentaire de deck_bsd le 06/06/2006 20:21:51

héhé vecchio je verai après mais exams mdr. mais je le ferai.

Commentaire de vecchio56 le 14/06/2006 18:08:17 administrateur CS

Une ListView avec LVS_EX_FULLROWSELECT serait plus pratique a utiliser
A ce que je vois tu n'a pas réussi a trouver le nom d'utilisateur qui a lancé le processus.
Tu devrais peut être retenter le coup dans le forum maintenant que BruNews est la...

Commentaire de vecchio56 le 14/06/2006 18:14:36 administrateur CS

Ah, et puis petite remarque, il y a un problème quand plusieurs processus ont le même nom d'exécutable. Stop ne termine pas forcément le bon

Commentaire de deck_bsd le 14/06/2006 19:07:39

vecchio , oui je sais, mais je n'y arrive pas, j'ai pourtant la bonne version de Comctl32.dll, enfin je pense vu que je suis sous win pro SP2. Ok merci pour la remarque, je vais plutot faire la recherche par les ID que les noms.

Pour ce qui est des noms, la méthode donnée est bonne, mais limitée, car on récupère les proprités de sécurité grâce au chemin de l'exe, hors il y en a certain qui n'en on pas :s et donc la je suis bloqué.

Commentaire de deck_bsd le 14/06/2006 19:08:19

xp pro SP2 , désolé pour l'étourderie :D

Commentaire de vecchio56 le 14/06/2006 19:10:33 administrateur CS

Les styles étendus sont a ajouter après la création:
ListView_SetExtendedListViewStyleEx(hListView, 0, LVS_EX_FULLROWSELECT);

Commentaire de deck_bsd le 14/06/2006 19:17:03

Voila le problème règlé en ce qui concerne les processus à plusieur noms, je me demande d'ailleur pourquoi je n'ai pas fait comme cela directement :s . Merci vecchio de te soucié de mon prog mdr.

Commentaire de deck_bsd le 14/06/2006 19:22:03

Oui vecchio j'ai déjà esseyer mais il me dit que LVS_EX_FULLROWSELECT est introuvable, lol je suis plutot impuisant face à ce problème. (je met a jours ma source de suite pour la correction du bug).

Commentaire de vecchio56 le 14/06/2006 19:31:54 administrateur CS

Tu mets ca au début de ton programme:
#define _WIN32_WINNT 0x501

Commentaire de deck_bsd le 14/06/2006 19:34:46

oui cela aussi je l'ai fait, cela ne change absolument rien :s

Commentaire de BruNews le 14/06/2006 19:42:23 administrateur CS

Installe VC++ Express 2005 + le SDK et finies les emmerdes des machins rustiques.
Pour faire du code Win, les produits MS me semblent les mieux adaptés.

Commentaire de deck_bsd le 14/06/2006 19:48:22

Ho tien voila BruNews, oui ... ce serai une solution :D . Met il n'est installable que via le net et le pc ou je programme n'y est pas raccordé, j'ai bien des cd avec des versions express mais pas VC++ :s , donc voila. Mais sinon , il doit y avoir moyen mm avec dev-cpp de pouvoir appliqués les styles étendu hein :D allons mdr.

Commentaire de BruNews le 14/06/2006 19:54:53 administrateur CS

0x20 au lieu de la contante

Commentaire de deck_bsd le 14/06/2006 19:58:12

Lol ça progress, maintenant c'est la fonction SetExtendedListViewStyleEx() qui n'est pas connue, je commence à croire que j'ai pas la bonne version de la dll.

Commentaire de BruNews le 14/06/2006 20:01:00 administrateur CS

pas besoin:
SendMessage(hlv, LVM_SETEXTENDEDLISTVIEWSTYLE, 0x20, 0x20);

Commentaire de vecchio56 le 14/06/2006 20:01:11 administrateur CS

Non ca risque pas de venir de la DLL...
Pour VisualC++ express, tu peux télécharger une image:
http://download.microsoft.com/download/7/6/0/760bd72d-bef3-4e0f-bdfb-1024ad5b005b/vc.iso

Commentaire de vecchio56 le 14/06/2006 20:03:59 administrateur CS

Autant le dire de suite, LVM_SETEXTENDEDLISTVIEWSTYLE=0x1000+54

Commentaire de deck_bsd le 14/06/2006 20:05:11

tu vas me tué hein ? si je te dit que LVM_SETEXTENDEDLISTVIEWSTYLE et bien il met qu'il n'est pas connu :s aiieeeee nooooon . Donc tjrs le même problème.

Commentaire de deck_bsd le 14/06/2006 20:05:53

mdr je vai tester avec 0x1000+54 :D

Commentaire de deck_bsd le 14/06/2006 20:07:09

hey ça marche avec 0x1000+54, intéressant, et comme on fait pour savoir à quoi correspond la constante? c'est dans la lib???

Commentaire de vecchio56 le 14/06/2006 20:08:21 administrateur CS

Ben non, c'est dans les headers (commctrl.h ici)
Mais celui de MinGW est en carton

Commentaire de deck_bsd le 14/06/2006 20:11:51

ha oui, bon à savoir ça merci vecchio et brunews.

Commentaire de BruNews le 20/06/2006 02:22:28 administrateur CS

InitCommonControls(); ne doit pas être appelé à chaque event de ta windProc, place le juste avant le CreateWindowEx dans le WinMain, sera impec à cet endroit.

if(haProcess == NULL){CloseHandle(haProcess); return FALSE;}
On ne ferme pas un handle invalide mais par contre il faut libérer la mémoire allouée plus haut.
Vérifie tous les cas de sortie de cette fonction, il ne faut rien oublier, c'est le cas typique ou qlq 'goto' judicieux ne gache rien à l'affaire.

Bon travail, continue ainsi.

Commentaire de deck_bsd le 20/06/2006 14:44:21

Ok BruNews , je modifie et je met à jour. Une question cependant, au risque de paraître idio, comment libéré la mémoire allouée pour le handle? car je ne sais qu'elle fonction ou autre à été employée.

Merci pour l'encouragement :D

Commentaire de BruNews le 20/06/2006 19:43:24 administrateur CS

CloseHandle suffit, c'est juste pour dire au système de libérer cette place dans la table des handles mais ce n'est pas de la la "mémoire" à libérer.
Si haProcess == NULL bien entendu que pas de CloseHandle.

Commentaire de vecchio56 le 22/06/2006 21:25:49 administrateur CS

C'est marrant certains processus on comme chemin \??\C:\, ou \SystemRoot
D'autres processus n'ont pas de chemin du tout :)

Commentaire de deck_bsd le 23/06/2006 11:41:10

Il n'y a que "system" qui n'en à pas , je n'en connai la raison. pource qui est de \?? je ne sais pas non plus. Je ne sais pas l'expliquer.

Commentaire de eRoZion le 30/06/2006 01:07:50

Salut,
Ta source est super intéressante. Je te remercie.

Une note : chez moi le tri des colones ne foncionne pas (si on entend par là le fait qu'en cliquant sur la colone de la mémoire par exemple ça se reclasse par ordre croissant).

Je suivrai l'évolution ;)


eRoZion

Commentaire de deck_bsd le 30/06/2006 16:43:29

Merci . C'est normale car il n'est pas fait :D lol

Commentaire de shuttleur le 13/12/2007 14:56:24

Salut à tous,

Je scrupte depuis hier les sources de simili-Gestionnaires de Taches, mais je n'arrive pas à trouver comment je peux connaître le nombre de threads d'un processus.

Sauriez vous comment faire ?

Commentaire de BruNews le 13/12/2007 15:16:45 administrateur CS

ZwQuerySystemInformation()
avec SystemProcessesAndThreadsInformation

exemple d'utilisation ici:
http://www.cppfrance.com/code.aspx?id=17658

Commentaire de shuttleur le 13/12/2007 16:08:04

Merci !

J'avais entre-temps essayé avec :
HANDLE hSnapshot = (HANDLE) CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
et
Process32Next(hSnapshot, &uProcess);

mais bizarrement, uProcess.cntThreads me renvoit un nombre différent de celui du taskmng de windows, et surtout constant dans le temps alors que le nombre de threads changeait dans le gestionnaire de taches de windows..

Je me lance avec ZwQuerySystemInformation


Commentaire de deck_bsd le 14/12/2007 08:54:17

Yop,

ZwQuerySystemInformation n'est pas une fonction du DDK ? tu m'avais dit que ce n'était pas très bon de jouer avec des fonctions du DDK dans une application normale.

Sinon pour les threads, c'est vrai que ce n'est pas une mauvaise idée. Je le rajouterai quand j'aurais le temps.

Commentaire de BruNews le 14/12/2007 09:58:16 administrateur CS

Il est clair que:
if(debutant || userApiExist) userApiUtiliser();

Commentaire de NeoUmbrella le 10/02/2008 11:51:00

Salut, intéressant comme code source.
Je me trompe peut-etre mais je crois que tu oublies de nettoyer dans tes fonctions LoadProcess et StopProcess ( au cas ou le processus ne serait pas trouvé ).
Faudrait faire un CloseHandle sur haSnapShot.
Sinon merci pour ce code source.

Commentaire de Thez le 03/03/2008 10:05:27

Bonjour,

Je voudrais te signaler qu'il y a une fuite mémoire dans GetUserProcess():
- si cela se passe mal, tu fais bien un CloseHandle, mais tu ne
désalloue pas la mémoire !

Je te propose de repousser tes allocations au plus tard. Ainsi tu n'as pas besoin de désallouer dans tous les cas où tu retournes FALSE.

En tout cas, très bon code.
Bonne continuation

Commentaire de deck_bsd le 03/03/2008 21:17:07

Yop,

Neo et Thez, merci je vai corrigé cela sous peu.

Commentaire de HeavenForsaker le 28/03/2008 17:53:30

Bonjour,

Sous Vista ton prog n'arrive pas a lister le path du processus audiodg.exe (Isolation graphique de périphérique audio Windows), le programme est exécuté en "run as administrator".

OpenProcess échoue sur ce processus :
haProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE,stProcess.th32ProcessID);

GetLastError() renvoi 5 (access denied)

Je pensais qu'avec le privilège debug on était à l'abris de ça mais visiblement ça n'est pas le cas, as tu une solution ?

Commentaire de HeavenForsaker le 28/03/2008 19:23:30

re,

J'ajoute que la fonction CreateToolhelp32Snapshot échoue aussi sur ce processus :
haModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);

Toujours avec access denied.

Commentaire de BruNews le 29/03/2008 18:38:56 administrateur CS

Je vais mettre une "V2" de mon code 17658 en x64, j'ai viré Vista32 pour Server 2008 x64 mais ça liste bien en version 32.

Commentaire de deck_bsd le 30/03/2008 13:03:20

HeavenForsaker , maintenant je crois que tu as ta solution :D pour ma par je modifierai bien mon code en suivant la méthode de celui de brunews, mais je ne suis pas à ça pour le moment. Je le ferais quand j'aurai le temps :D mais je note

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

processus vivant, api win32 [ par alkove ] Bonjour, je me demandais si il était possible sous windows avec l'api win32, de savoir si un processus est encore actif, ou si il a planté o Gestion du clavier avec l'API Windows [ par tintin72 ] SalutJe programme un petit jeu en OpenGL et pour l'instant j'utilise DirectInput pour la gestion entrée du clavier, mais j'aimerais plutot gérer l'ent [Visula c++]Mettre appli dans processus [ par goutbouyo ] Salut,J'ai un programme qui doit s'executer tous les jours automatiquement.Je voudrais donc le mettre uniquement dans les processus et que lorsque il Gestion et affichage de bitmaps (API Windows). [ par _michel ] Bonjour à tous,J'ai un problème avec les bitamps:je voudrai conserver en mémoire pendant l'execution de mon programme la "capture d'écran", pour l'aff fermer application/processus (executer un bat en c++) [ par dgac ] Bonjour ,j'ai cherché sur internet sans trouvé comment faire pour fermer une application ou tuer un processus (movamp.exe dans mon cas)Par ailleur je Gestion de tâche/processus [ par Sniperr ] Bonjour,Je suis en train de créer un programme de surveillance me permettant de donner une alerte lorsque le processus "iexplore.exe" est lancé, ou lo Developpement des GUI sous Win32 [ par medsetti ] Bonsoir, Tout d'abord je me présente, je suis un ingénieur en génie industriel qui désire developper des applications windows pour la gestion de la pr gestion d'un processus des archives [ par omario09 ] bonjour a tous, bain je suis un débutant en programmation .net et je suis entrain d'effectuer un stage au saint d'une entreprise et mon theme c'est de les messages en API [ par Adeon ] salut!En API il intervient toujours cette partie de codes qui suit qui gere les messages fenetres.J'aimerai que qq m'explique ce que font les fonction


Nos sponsors


Sondage...

Comparez les prix

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 : 3,806 sec (4)

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