Si je lis ou écris dans un fichier et reçois une erreur 33 ou 32, je voudrais enregistrer un message contenant le nom des autres processus qui ont ouvert le fichier. Il doit y avoir une API Win32 que je pourrais utiliser pour obtenir cette information. Process Explorer l'affiche. Bien sûr, Process Explorer a également des informations sur tous les processus en mémoire. Je préférerais trouver le coupable sans interroger tous les processus.Quelle API Win32 peut être utilisée pour trouver le processus dans lequel un fichier donné est ouvert?
9
A
Répondre
2
This semble faire ce que vous voulez.
évidemment utilise une API cachée telle que NtQueryInformationProces
s.
1
The Handle program from SysInternals does this as well, mais je ne sais pas comment. Je ne pense pas qu'il existe une seule API documentée pour le faire. Je pense que vous devez parcourir les processus, énumérer chacun des handles dans le processus, puis déterminer le nom de fichier associé à ce handle.
Questions connexes
- 1. Quelle est la fonction API Win32 pour les octets privés?
- 2. Quelle API peut être utilisée pour _capture_ la souris lors du déplacement de fenêtres OS X "Carbon"?
- 3. Quelle syntaxe doit être utilisée pour WebMessageBodyStyle.Wrapped?
- 4. le manifeste peut ne pas être valide ou le fichier n'a pas pu être ouvert
- 5. win32 api pour Process.BeginOutputReadLine
- 6. Comment trouver le chemin depuis lequel le processus/exécutable actuel est en cours d'exécution?
- 7. Comment trouver quel processus fonctionne Linux à un moment donné?
- 8. Quelle bibliothèque Java peut être utilisée pour accéder aux données via WebDAV?
- 9. L'extension ZeroConf peut-elle être utilisée dans Firefox/XULRunner?
- 10. Une fonction bash peut-elle être utilisée dans différents scripts?
- 11. Quelle langue est utilisée pour mapper les paramètres à modéliser?
- 12. Comment un script bash peut-il connaître le répertoire dans lequel il est installé? opérateur?
- 13. Le processus ne peut pas accéder au fichier car il est utilisé par un autre processus
- 14. Mac OS X: Un processus peut-il être rendu dans la fenêtre d'un autre processus?
- 15. modifier un fichier ouvert C++
- 16. Quelle est la bibliothèque XML la plus utilisée pour C++?
- 17. Obtenir le processus en cours donné handle de processus
- 18. Ruby win32 api interface
- 19. Vérification du fichier est ouvert dans Delphi
- 20. Existe-t-il une API Subversion pouvant être utilisée pour la programmation dans .NET?
- 21. Quelle est l'indépendance des threads dans le même processus?
- 22. Est-ce que Windows peut détecter quand un moniteur, une souris, un clavier est déconnecté?
- 23. Est-ce que ce comportement Perl peut être émulé avec un commutateur/cas ou donné/quand?
- 24. Quelle bibliothèque/programme peut-il être utilisé pour générer le bytecode Java?
- 25. Besoin d'une signature C# pour AcquireCredentialsHandle win32 api fonction
- 26. Quelle est la fonction utilisée dans Sql Server 2005 pour obtenir le datetime actuel dans utc?
- 27. La déclaration "using" peut-elle être utilisée avec des templates?
- 28. Quelle requête/path-language est utilisée pour les références dans les instances XMI dérivées d'Ecore?
- 29. Vérifier si un fichier est ouvert à partir d'un autre processus
- 30. Étant donné le texte d'un #define, peut-il être transmis à un template?