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

Messages postés
961
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
- - Dernière réponse : violent_ken
Messages postés
1822
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
- 20 janv. 2010 à 13:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/39333-lister-les-handles-fichiers-cle-de-registres-ouverts-par-un-programme-nt-2000-xp-en-vb-net

Afficher la suite 
violent_ken
Messages postés
1822
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
-
Brunews parle de l'API Win32.

Pour inclure çà dans du VB.Net faut utiliser le namespace
System.Runtime.InteropServices

et déclarer la fonction comme décrit ici : http://www.pinvoke.net/default.aspx/kernel32/CreateFile.html

Sinon CreateFile c'est bien, mais çà ne permet pas de savoir quel process a ouvert le fichier. Pour connaitre le process, pas le choix, faut énumérer les handles ouverts sur le système et déterminer, en fonction du nom du fichier, quel est le handle concerné pour avoir son ProcessId associé.
@+
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
Si je parle API c'est API sinon j'aurais dit autre chose.
http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
cs_bidouille007
Messages postés
263
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1 -
BRUNEWS

Je m'étonne car quand je fais la commande que tu dis, je n'ai pas le choix dans les options de la commande :

File.Create(entree, 0, FileOptions.None)

Sinon filecreate n'existe pas, à moins de faire un imports mais lequel ?

D'avance merci
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
Pas besoin de choses compliquées:
Fais un CreateFile sur le nom de fichier avec 0 en SHARE_MODE et OPEN_EXISING.
Si handle = -1 alors est indisponible.
Sinon CloseHandle et est dispo.
L'API ne déclenche jamais d'erreurs.
violent_ken
Messages postés
1822
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
-
bidouille007 => Salut, si c'est bien çà, mais il faut regarder les handles ouverts de type "fichier" (file).

Par contre pour éviter l'erreur "fichier occupé par un autre processus", il faudrait fermer le handle ouvert par le process, mais çà risque d'impacter sur son comportement.

@+