Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LISTER LES HANDLES (FICHIERS, CLÉ DE REGISTRES,...) OUVERTS PAR UN PROGRAMME (NT/2000/XP)


Information sur la source

Catégorie :Système Source .NET ( DotNet ) Classé sous : handle, fichier, registre, processus, ouvert Niveau : Initié Date de création : 07/11/2006 Date de mise à jour : 07/01/2007 17:27:42 Vu / téléchargé: 7 165 / 625

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


Description

Ce code permet d'obtenir la liste des handles ouverts par un programme :
- fichiers
- sections
- clé de registre
- événement
- mutex
- ...

Ce code permet aussi de recherché un nom de handle dans tous les processus, pour savoir, par exemple, le nom de l'application qui a ouvert le fichier toto.txt... ou une clé de registre, ou un mutex...

Ce code liste aussi les programmes en execution. Il utilise des APIs natives non documentées pour NT/2000/XP...
 

Conclusion

Pour plus d'infos sur les API Native de Windows NT/2000/XP, regarder le livre "Windows NT/2000 NATIVE API Reference" de Gary Nebbett

Ce code ne fonctionne pas sous 9x/ME.

Concu avec Visual C# Express 2005

Une version de compiler se trouve dans le dossier du projet, renommer en .ex_...

IMPORTANT : si vous voulez avoir la liste des fichiers ouverts,
il est important de mettre KernelMemory.sys
-> dans le même dossier que win32lsof.exe si vous l'utilisez à part
-> dans le dossier win32lsof\bin\Debug
-> dans le dossier win32lsof\bin\Release

Si win32lsof ne trouve pas le fichier KernelMemory.sys, il n'affichera pas les handles de type fichier et affichera "Fichier introuvable"

Certain handle sont nommés, d'autres pas...

N'hésitez pas à commenter et à noter...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

12 novembre 2006 15:08:58 :
ajout d'un exe renommer .ex_
16 novembre 2006 10:16:35 :
Correction d'un bug avec StringBuilder
07 janvier 2007 17:27:42 :
correction pour Vista Business...

Commentaires et avis

signaler à un administrateur
Commentaire de Patrice99 le 08/11/2006 09:40:25

Tu pourrais mettre l'exe renommé SVP ? Merci.

signaler à un administrateur
Commentaire de ShareVB le 12/11/2006 15:10:29

salut,

dsl de la latence...

il ne faut pas oublier de mettre KernelMemory.sys dans le même dossier que win32lsof.exe...

ShareVB

signaler à un administrateur
Commentaire de Patrice99 le 13/11/2006 08:39:38

J'ai bien mis KernelMemory.sys dans le même dossier que win32lsof.exe mais j'obtiens :
System.IndexOutOfRangeException: Avertissement : Du code non managé a provoqué un dépassement de capacité de mémoire tampon StringBuilder. Le processus peut devenir instable. Une capacité insuffisante a été allouée à StringBuilder avant son marshaling.
   à win32lsof.COpenedHandles.GetLogicalDriveStrings(Int32 nBufferLength, StringBuilder lpBuffer)
   à win32lsof.COpenedHandles.GetDosFileName(String strInternalFilename)
   à win32lsof.COpenedHandles.RetrieveObject(SYSTEM_HANDLE_INFORMATION& Handle)
   à win32lsof.COpenedHandles.CreateQueryHandlesBuffer()
   à win32lsof.Form1.cmdRefresh_Click(Object sender, EventArgs e)
   à System.Windows.Forms.Control.OnClick(EventArgs e)
   à System.Windows.Forms.Button.OnClick(EventArgs e)
   à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   à System.Windows.Forms.Control.WndProc(Message& m)
   à System.Windows.Forms.ButtonBase.WndProc(Message& m)
   à System.Windows.Forms.Button.WndProc(Message& m)
   à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

signaler à un administrateur
Commentaire de LordBob le 15/11/2006 20:02:45

c'est une très bonne source, qui m'a fait découvrir de nouvelle API :)

signaler à un administrateur
Commentaire de Patrice99 le 17/11/2006 16:20:34

ça marche nickel maintenant, sûr que ça doit pouvoir servir à quelque chose, il faudrait ouvrir un wiki sur la stratégie d'utilisation du logiciel dans différent cas !

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Status de fichier [ par SharpMao ] Salut à tous,Est-ce que quelqu'un sait si il y a un moyen de savoir si un fichier est actuellement ouvert en écriture par un autre processus? Je m'exp detection de fichier excel ouvert [ par Dadie ] bonjourj'aimerais savoir comment faire pour detecter les fichier excel ouvert et ensuite les fermer.merciDadie Enregistrer un fichier déja ouvert ! [ par stela86 ] Bjr, j'arrive a suavegarder mon graphe dans un fichier xml, j'arrive aussi à le charger mais je ne sais pas comment faire pour enregistrer apr&#2 Status d'un fichier [ par adomarle ] Bonjour,J'ai un souci, je veux savoir si un fichier est ouvert ou pas et je n'y arrive pas.En fait, j'ai créé un service qui envoie automati Savoir si un fichier est ouvert [ par djoao ] Salut à tous,J'aimerais savoir s'il est possible de faire un test sur un fichier afin de savoir s'il est ouvert ?Merci netapi32 Session et fichier ouvert sur le partage [ par narfight ] Avec l'API netapi32.dll, on peux lister les personnes connectées au PC qui partage des fichiers et savoir quels sont les fichiers qui sont ouvert mais Ouverture multiple fichiers pr 1 seul processus [ par Blacknight91 ] Bl@cknightBonjour,J'ai une application pouvant recevoir en argument un chemin d'un fichier.J'ai fait l'association extension de fichier <-> mon Sauvegarde PostGre [ par Marquo ] Bonjour,j'aimerais faire une sauvegarde PostGre.Pour cela je crée un processus avec pour nom de fichier le "pg_dump" et pour arguments le nom de Probleme pour ouvrir un fichier par plusieurs processus [ par bossun ] salut,Je cherche à acceder à un meme fichier par 2 processus différents en meme temps... je voudrais que le premier puisse l'ouvir en lecture ecriture Fichier utilsé par d'autre processus [ par matthias26 ] Bonjour à tous,Je suis confronté depuis quelques jours à un problème lors d'opération d'écriture avec des fichiers (sauvegarde après modification ou s


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,44 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.