Comment savoir ce qui a un fichier EXE ouvert dans Windows

Lorsque vous essayez de supprimer un fichier dans l’Explorateur Windows et que ce fichier est en cours d’utilisation, une boîte de dialog indiquant Fichier en cours d’utilisation s’affiche et vous donne le nom du fichier ouvert.

Par exemple,

Exemple http://img28.imageshack.us/img28/7618/c3b3e2f53833461b9c8c2a3.png

J’ai vu des hacks impliquant des pilotes du kernel, mais si Windows Explorer peut le faire, alors il doit y avoir un moyen plus facile.

Quelle est la meilleure et la plus simple façon d’obtenir ces informations?

À partir de Windows Vista, vous pouvez utiliser l’interface IFileIsInUse . Si vous souhaitez prendre en charge les anciennes versions de Windows, vous pouvez utiliser les fonctions NtQuerySystemInformation , NtQueryInformationFile et NtQueryObject WinApi pour plus d’informations sur ce sujet.