Trouver quelle appli utilise une ressource / un fichier locké

Trouver quelle appli utilise une ressource / un fichier locké - C++ - Programmation

Marsh Posté le 26-10-2010 à 12:12:28    

Bonjour,
 
Connaissez vous une technique sous WINDOWS pour récupérer des informations sur l'application qui est potentiellement en train de locker un fichier.
Dans le cas où on voudrait supprimer ce fichier de force, j'aimerai savoir quelle appli est en train de l'utiliser.
J'ai regardé dans la MSDN, mais sans vraiment trouver mon bonheur.
Mais je pense que c'est faisable puisque certaines applications commerciales y parviennent : http://www.nirsoft.net/utils/opened_files_view.html
 
Des idées ?

Reply

Marsh Posté le 26-10-2010 à 12:12:28   

Reply

Marsh Posté le 26-10-2010 à 17:35:50    

Si c'est juste pour forcer la fermeture d'un handle, tu peux aussi utiliser process explorer. Tu peux faire une recherche avec Ctrl+F, il te listera le processus en question, et tu pourra fermer ce handle avec un clic droit.
 
Il y a aussi un outil en ligne de commande qui s'appelle "Handle". C.f. google "sysinternals".
 
Maintenant le faire avec l'API Windows, j'ai le présentiment que ça tape dans des API non documentées... donc il y a intérêt à ce que ça en vaille cette peine ...

Reply

Marsh Posté le 26-10-2010 à 17:41:58    

Helas, je n'ai pas trop le choix, le but c'est de le faire automatiquement, donc pas d'intervention manuelle possible dans mon cas.
Et justement, dans l'API Windows, j'aimerai bien savoir quelle classe/méthode peut m'aider à faire ça.
Mais dejà merci pour les pistes

Reply

Marsh Posté le 26-10-2010 à 22:20:55    

Vachement pratique ce "handle", moi qui peste contre windows qui refuse de me supprimer des fichiers.


---------------
sheep++
Reply

Marsh Posté le 03-11-2010 à 11:48:48    

Perso, handle n'est pas une appli présente sur mon poste (win xp 32 pro) je me demande comment vous l'avez obtenue.
Et sinon, je cherche toujours à le faire dans un bout de code, et je me demande quelles méthodes de l'API sont utilisées par handle justement.

Reply

Marsh Posté le 03-11-2010 à 12:00:01    

Si tu essaies d'ouvrir un fichier locké, tu auras une erreur. Par contre je ne connais pas de moyen de savoir qui utilise la ressource en question.


---------------
Be the one with the flames.
Reply

Marsh Posté le 03-11-2010 à 14:53:08    

NounouRs a écrit :

Perso, handle n'est pas une appli présente sur mon poste (win xp 32 pro) je me demande comment vous l'avez obtenue.
Et sinon, je cherche toujours à le faire dans un bout de code, et je me demande quelles méthodes de l'API sont utilisées par handle justement.


 
Comme dit plus haut, par google: http://lmgtfy.com/?q=handle+sysinternals
 
Apparement il n'y a pas une méthode pour le savoir, ca passe par la création d'un driver système avec analyse de la mémoire, etc, bref ca a très l'air compliqué... (enfin trop pour mo en tout cas!)
Par contre peut être peut tu analyser la sortie du programme handle pour trouver (programmatiquement) le nom du programme qui bloque...


Message édité par breizhbugs le 03-11-2010 à 14:54:31
Reply

Marsh Posté le 03-11-2010 à 17:39:50    

Apparemment, au vu de google, ça passe par l'utilisation de CreateToolHelp32Snapshot, mais ça à pas l'air simple.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed