OVH Cloud OVH Cloud

Décharger une DLL

11 réponses
Avatar
Ascadix
Salut tout le monde

Existe-t-il un moyen pour décharger "de force" une DLL chargée par
un/plusieurs programme à la volée ? afin de pouvoir ensuite manipuler le
fichier toto.dll en question ( supprimer / remplacer ... )

Plus précisément, c'est plutot souvent avec l'explorateur windows, comment
lui faire décharger une DLL afin de pouvoir supprimer le fichier

Le tout en ligne sans rebooter ni fermer la session ni tuer le process (
sinon, je poserais po la question :-)

Merci pour les idées / info


--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.

10 réponses

1 2
Avatar
~Jean-Marc~ [MVP]
Salutations *Ascadix* !
Dans <news:%
tu nous disais :
Existe-t-il un moyen pour décharger "de force" une DLL chargée par
un/plusieurs programme à la volée ? afin de pouvoir ensuite manipuler
le fichier toto.dll en question ( supprimer / remplacer ... )

Plus précisément, c'est plutot souvent avec l'explorateur windows,
comment lui faire décharger une DLL afin de pouvoir supprimer le
fichier


Voilà le joujou demandé ;-) :
http://www.diamondcs.com.au/index.php?page=apm

A tes risques et périls... :-D

@+

--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/

Avatar
Kayak
Il se trouve que ~Jean-Marc~ [MVP] a formulé :
Salutations *Ascadix* !
Dans <news:%
tu nous disais :
Existe-t-il un moyen pour décharger "de force" une DLL chargée par
un/plusieurs programme à la volée ? afin de pouvoir ensuite manipuler
le fichier toto.dll en question ( supprimer / remplacer ... )

Plus précisément, c'est plutot souvent avec l'explorateur windows,
comment lui faire décharger une DLL afin de pouvoir supprimer le
fichier


Voilà le joujou demandé ;-) :
http://www.diamondcs.com.au/index.php?page=apm

A tes risques et périls... :-D

@+


... et sans risques et périls, directement par la base de registre :
;o)
Mette à 1 la valeur AlwaysUnloadDll dans la clé
Hkey_Local_Machine/Software/Microsoft/Windows/CurrentVersion/Explorer

Ou alors tu installes Ramboost XP. Entre autres, c'est ici
http:/magic56.free.fr


Avatar
~Jean-Marc~ [MVP]
Salutations *Kayak* !
Dans <news:
tu nous disais :

... et sans risques et périls, directement par la base de registre :
;o)
Mette à 1 la valeur AlwaysUnloadDll dans la clé
Hkey_Local_Machine/Software/Microsoft/Windows/CurrentVersion/Explorer


Non... Cette valeur ne décharge pas les DLL en cours d'utilisation par
un process !

Ou alors tu installes Ramboost XP. Entre autres, c'est ici
http:/magic56.free.fr


Pareil. En plus, ça sert à rien...

@+

--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/

Avatar
Ascadix
Nous vimes apparaitre en ce beau jour, sous la plume experte de ~Jean-Marc~
[MVP] la prose que voici:
<news:Oc%23T$%
Salutations *Ascadix* !
Dans <news:%
tu nous disais :
Existe-t-il un moyen pour décharger "de force" une DLL chargée par
un/plusieurs programme à la volée ? afin de pouvoir ensuite manipuler
le fichier toto.dll en question ( supprimer / remplacer ... )

Plus précisément, c'est plutot souvent avec l'explorateur windows,
comment lui faire décharger une DLL afin de pouvoir supprimer le
fichier


Voilà le joujou demandé ;-) :
http://www.diamondcs.com.au/index.php?page=apm

A tes risques et périls... :-D


Merci ...

Mais comme tu dis ..c'est périlleux
testé ..pas convaincu, je sais pas s'il décharge ..mais en tous cas, ça
plante l'explorer dés que je décharge une DLL,


--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.


Avatar
Jean-Claude BELLAMY
Dans le message news: ,
Kayak s'est ainsi exprimé:

[...]
Existe-t-il un moyen pour décharger "de force" une DLL chargée par
un/plusieurs programme à la volée ? afin de pouvoir ensuite
manipuler le fichier toto.dll en question ( supprimer / remplacer
... )



... et sans risques et périls, directement par la base de registre :
;o)
Mette à 1 la valeur AlwaysUnloadDll dans la clé
Hkey_Local_Machine/Software/Microsoft/Windows/CurrentVersion/Explorer


NANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN !!!!!!!!

Cette clef prétendue miraculeuse :
HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/AlwaysUnloadDll
n'est applicable que
"*For operating systems prior to Windows 2000*"

Donc sous W2k et au-delà elle a autant d'effet que de vouloir convaincre
Steve Ballmer à mettre Windows dans le Domaine Public! ;-)

Dixit MSDN :
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/shell_basics_programming/debugging.asp?frame=true

Ou alors tu installes Ramboost XP. Entre autres, c'est ici
http:/magic56.free.fr


Autant INUTILE !

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*



Avatar
Claude LaFrenière
Bonjour *Ascadix* :

Salut tout le monde

Existe-t-il un moyen pour décharger "de force" une DLL chargée par
un/plusieurs programme à la volée ? afin de pouvoir ensuite manipuler le
fichier toto.dll en question ( supprimer / remplacer ... )

Plus précisément, c'est plutot souvent avec l'explorateur windows, comment
lui faire décharger une DLL afin de pouvoir supprimer le fichier

Le tout en ligne sans rebooter ni fermer la session ni tuer le process (
sinon, je poserais po la question :-)

Merci pour les idées / info


Dernier clou dans le cercueil de cette connerie:

The Memory-Optimization Hoax
http://www.windowsitpro.com/Article/ArticleID/41095/41095.html

;-)
--
Claude LaFrenière [MVP] :-)

«My Principal Design Was To Inform, Not To Amuse Thee.»
Lemuel Gulliver, The Travels (IV:12)
http://climenole.serendipia.net

Avatar
Ascadix
Nous vimes apparaitre en ce beau jour, sous la plume experte de Claude
LaFrenière la prose que voici:
<news:1qas0dg1q4zg7$
Bonjour *Ascadix* :

Salut tout le monde

Existe-t-il un moyen pour décharger "de force" une DLL chargée par
un/plusieurs programme à la volée ? afin de pouvoir ensuite
manipuler le fichier toto.dll en question ( supprimer / remplacer
... )

Plus précisément, c'est plutot souvent avec l'explorateur windows,
comment lui faire décharger une DLL afin de pouvoir supprimer le
fichier

Le tout en ligne sans rebooter ni fermer la session ni tuer le
process ( sinon, je poserais po la question :-)

Merci pour les idées / info


Dernier clou dans le cercueil de cette connerie:


Oui c'est à dire ? connerie ? ...
tu peut t'épancher un peu plus ?

The Memory-Optimization Hoax
http://www.windowsitpro.com/Article/ArticleID/41095/41095.html


J'ai rien dit qui ressemble à ça, je suis au courant de cette histoire

NB: les softs "d'optimisation" de la mémoire ont quand même au moin UNE
application pratique, c'est quand tu est en face d'une appli qui pour
démarer vérifie le montant de RAM physique disponible ..et refuse de
démarer si elle ne trouve pas son compte, là un bon pousseur de RAM ça peut
aider en poussant pas mal de truc vers le swap pour libérer de la RAM
physique.
Et avant que qqun dise que c'est rare comme soft, j'ai un exemenple tout
béte qui me fait le coup assez souvent : VirtualPC 2004.


--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.


Avatar
Ascadix
Nous vimes apparaitre en ce beau jour, sous la plume experte de Jean-Claude
BELLAMY la prose que voici:
<news:
Dans le message news: ,
Kayak s'est ainsi exprimé:

[...]
Existe-t-il un moyen pour décharger "de force" une DLL chargée par
un/plusieurs programme à la volée ? afin de pouvoir ensuite
manipuler le fichier toto.dll en question ( supprimer / remplacer
... )



... et sans risques et périls, directement par la base de registre :
;o)
Mette à 1 la valeur AlwaysUnloadDll dans la clé
Hkey_Local_Machine/Software/Microsoft/Windows/CurrentVersion/Explorer


NANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN !!!!!!!!


Oh la belle vois de tenor :-))

Cette clef prétendue miraculeuse :
HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/AlwaysUnloadDll
n'est applicable que "*For operating systems prior to
Windows 2000*"
Donc sous W2k et au-delà elle a autant d'effet que de vouloir
convaincre Steve Ballmer à mettre Windows dans le Domaine Public! ;-)

Dixit MSDN :
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/shell_basics_programming/debugging.asp?frame=true

Ou alors tu installes Ramboost XP. Entre autres, c'est ici
http:/magic56.free.fr


Autant INUTILE !


Pis c'est pas vraiment le but recherché

Ceci dit, JCB ..t'as pas une p'tite idée ou astuce de deriere les fagots
pour ma question ?

--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.




Avatar
Jean-Claude BELLAMY
Dans le message news:%23T$ ,
Ascadix s'est ainsi exprimé:

Nous vimes apparaitre en ce beau jour, sous la plume experte de
Jean-Claude BELLAMY la prose que voici:
[...]
Kayak s'est ainsi exprimé:
[...]
Existe-t-il un moyen pour décharger "de force" une DLL chargée par
un/plusieurs programme à la volée ? afin de pouvoir ensuite
manipuler le fichier toto.dll en question
[...]




Ceci dit, JCB ..t'as pas une p'tite idée ou astuce de deriere les
fagots pour ma question ?



Pour décharger une DLL, il y a effectivement "Advanced Process Manipulation"
signalé par l'ami Jean-Marc le 3 juin à 23h03
(http://www.diamondcs.com.au/index.php?page=apm)

NB: les utilitaires de DiamondsCS sont très bons en général.
P.ex. le fameux "REGPROT" qui avertit de toute tentative de modif de la BDR
http://www.diamondcs.com.au/index.php?page=regprot

Ils sont un peu dans la même "lignée" et philosophie que les outils de
Sysinternals (Marc Russinovich)


Je suis souvent confronté à ce pb de DLL "in use".
Comme je développe des DLL (en Delphi essentiellement), utilisées avec des
applis un peu "tordues" qui se plantent parfois à moitié, il m'arrive de ne
plus pouvoir recompiler ces DLL !

Quand j'ai une DLL "in use", voici comment je procède :

Au lieu d'utiliser APM (qui est très bon, mais un peu "hard" ! ;-) ),
j'utilise "Process Explorer" de ce cher Marc Russinovich
http://www.sysinternals.com/Utilities/ProcessExplorer.html

Il possède une fonctionnalité de recherche de DLL "in use", et affiche le ou
les processus qui s'en ser(ven)t.
Une fois que j'ai identifié le processus , il ne me reste plus qu'à
l'arrêter gentiment (s'il veut bien s'arrêter) ou alors à coup de "kill"
s'il est récalcitrant.. ;-)

C'est parfois assez surprenant !
Ainsi j'ai écrit une DLL qui n'est utilisée que par 3 applis (que j'ai
écrites également)
Et récemment, je reçois une injurebox de Delphi me disant qu'il ne peut pas
recompiler parce que le fichier est en cours d'utilisation.
Sauf qu'aucune de mes 3 applis ne tournait !
Et "ProcessXP" m'a montré que c'était ... l'explorateur de Windows qui
l'avait accaparée !
Rien compris ! (je pense que c'était à cause de la consultation préalable de
l'onglet propriétés de cette DLL sous l'explorateur, et qui avait "laissé
trainer des choses .." )

J'ai donc "tué" explorer (momentanément), je l'ai relancé (depuis le
taskmanager), ma DLL a été libérée, et j'ai pu recompiler.

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*





Avatar
Ascadix
Nous vimes apparaitre en ce beau jour, sous la plume experte de Jean-Claude
BELLAMY la prose que voici:
<news:
Dans le message news:%23T$ ,
Ascadix s'est ainsi exprimé:

Nous vimes apparaitre en ce beau jour, sous la plume experte de
Jean-Claude BELLAMY la prose que voici:
[...]
Kayak s'est ainsi exprimé:
[...]
Existe-t-il un moyen pour décharger "de force" une DLL chargée
par un/plusieurs programme à la volée ? afin de pouvoir ensuite
manipuler le fichier toto.dll en question
[...]




Ceci dit, JCB ..t'as pas une p'tite idée ou astuce de deriere les
fagots pour ma question ?



Pour décharger une DLL, il y a effectivement "Advanced Process
Manipulation" signalé par l'ami Jean-Marc le 3 juin à 23h03
(http://www.diamondcs.com.au/index.php?page=apm)

NB: les utilitaires de DiamondsCS sont très bons en général.
P.ex. le fameux "REGPROT" qui avertit de toute tentative de modif de
la BDR http://www.diamondcs.com.au/index.php?page=regprot

Ils sont un peu dans la même "lignée" et philosophie que les outils de
Sysinternals (Marc Russinovich)


Je suis souvent confronté à ce pb de DLL "in use".
Comme je développe des DLL (en Delphi essentiellement), utilisées
avec des applis un peu "tordues" qui se plantent parfois à moitié, il
m'arrive de ne plus pouvoir recompiler ces DLL !

Quand j'ai une DLL "in use", voici comment je procède :

Au lieu d'utiliser APM (qui est très bon, mais un peu "hard" ! ;-) ),
j'utilise "Process Explorer" de ce cher Marc Russinovich
http://www.sysinternals.com/Utilities/ProcessExplorer.html

Il possède une fonctionnalité de recherche de DLL "in use", et
affiche le ou les processus qui s'en ser(ven)t.
Une fois que j'ai identifié le processus , il ne me reste plus qu'à
l'arrêter gentiment (s'il veut bien s'arrêter) ou alors à coup de
"kill" s'il est récalcitrant.. ;-)

C'est parfois assez surprenant !
Ainsi j'ai écrit une DLL qui n'est utilisée que par 3 applis (que j'ai
écrites également)
Et récemment, je reçois une injurebox de Delphi me disant qu'il ne
peut pas recompiler parce que le fichier est en cours d'utilisation.
Sauf qu'aucune de mes 3 applis ne tournait !
Et "ProcessXP" m'a montré que c'était ... l'explorateur de Windows qui
l'avait accaparée !
Rien compris ! (je pense que c'était à cause de la consultation
préalable de l'onglet propriétés de cette DLL sous l'explorateur, et
qui avait "laissé trainer des choses .." )

J'ai donc "tué" explorer (momentanément), je l'ai relancé (depuis le
taskmanager), ma DLL a été libérée, et j'ai pu recompiler.


C'est déja ce que je fais ..et justement, je cherchais un moyen plus soft de
décharger la DLL sans killer le process ..

bon, ben je crois que je vais continuer à faire tourner taskkill et process
explorer

Merci à tous pour les infos


--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.






1 2