Je voulais faire une restauration mais elle n'est pas possible !
Une fenêtre s'ouvre et dit:
"Une erreur inattendue s'est produite.
Classe non enregistrée(0x80040154)"
Que signifie cette erreur?
Je voulais faire une restauration mais elle n'est pas possible !
Une fenêtre s'ouvre et dit:
"Une erreur inattendue s'est produite.
Classe non enregistrée(0x80040154)"
Que signifie cette erreur?
Je voulais faire une restauration mais elle n'est pas possible !
Une fenêtre s'ouvre et dit:
"Une erreur inattendue s'est produite.
Classe non enregistrée(0x80040154)"
Que signifie cette erreur?
"gimoka" a écrit dans le message de groupe de
discussion :Je voulais faire une restauration mais elle n'est pas possible !
Une fenêtre s'ouvre et dit:
"Une erreur inattendue s'est produite.
Classe non enregistrée(0x80040154)"
Que signifie cette erreur?
Quelque chose facilitant particulièrement le transit intestinal! ;-)
Cela signifie qu'un composant COM utilisé par l'application concernée n'a
pas été enregistré dans la BDR.
Un tel composant n'est rien d'autre qu'une DLL, un peu spéciale car elle
se doit d'avoir quelques fonctions aux noms normalisés
("dllRegisterServer", ...), et qui doit avoir été enregistré dans la BDR à
l'aide de REGSVR32.EXE
P.ex.
regsvr32 shell32.dll
regsvr32 capicom.dll
...
regsvr32 lit alors certaines données présentes dans le fichier dll, et
crée des clefs en conséquence dont la 1ère est un CLSID (CLasS
IDentifier).
P.ex. l'enregistrement de "capicom.dll" (utilisée pour la gestion des
certificats et clefs privées) provoque la création de l'arborescence
HKEY_CLASSES_ROOTCLSID{03ACC284-B757-4B8F-9951-86E600D2CD06}
"{03ACC284-B757-4B8F-9951-86E600D2CD06}" est l'identifiant UNIQUE et
UNIVERSEL de ce composant.
Si un programme en a besoin, c'est par ce CLSID qu'il l'appellera.
Si le composant a bien été enregistré (par regsvr32), on pourra retrouver
le nom du fichier le contenant grâce à la clef
HKCRCLSID{03ACC284-B757-4B8F-9951-86E600D2CD06}InprocServer32
(p.ex., chez moi, la valeur par défait est
"D:DelphiSuperExecCAPICom.dll")
L'intérêt de ce système est que le fichier correspondant peut être
n'importe où, avec n'importe quel nom (cela peut différer suivant les
machines).
Ce qui compte, c'est uniquement le CLSID.
Donc, pour en revenir au problème actuel, l'outil de restauration (je
pense que tu veux parler de %systemroot%system32rstrui.exe) a besoin
d'un composant, mais il ne l'a pas trouvé :
- soit parce qu'il n'a jamais été enregistré
(mais çà m'étonnerait car rstrui est un outil système,
installé avec Windows)
- soit parce qu'il a été flingué par erreur.
Reste à savoir à présent quel est le composant en question.
Il faudrait que tu examines les journaux dans l'observateur d'événements.
En analysant le binaire de rstrui.exe, j'ai vu qu'il faisait appel à au
moins 2 composants :
%systemroot%system32spp.dll
(Microsoft® Windows Shared Protection Point Library)
Clef :
HKCRCLSID{4B966436-6781-4906-8035-9AF94B32C3F7}
%systemroot%system32srcore.dll
(Microsoft® Windows System Restore Core Library)
Clef :
HKCRCLSID{883FF1FC-09E1-48e5-8E54-E2469ACB0CFD}
Donc vérifie aussi l'existence de ces 2 DLL et réenregistre les :
regsvr32 %systemroot%system32spp.dll
regsvr32 %systemroot%system32srcore.dll
NB: si une dll est déjà correctement enregistrée, cela ne cause aucun
problème de la réenregistrer.
PS: Il est possible qu'il y ait d'autres composants ...
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
"gimoka" <gimoka@gmail.com> a écrit dans le message de groupe de
discussion : e2JRbWaSKHA.4004@TK2MSFTNGP04.phx.gbl...
Je voulais faire une restauration mais elle n'est pas possible !
Une fenêtre s'ouvre et dit:
"Une erreur inattendue s'est produite.
Classe non enregistrée(0x80040154)"
Que signifie cette erreur?
Quelque chose facilitant particulièrement le transit intestinal! ;-)
Cela signifie qu'un composant COM utilisé par l'application concernée n'a
pas été enregistré dans la BDR.
Un tel composant n'est rien d'autre qu'une DLL, un peu spéciale car elle
se doit d'avoir quelques fonctions aux noms normalisés
("dllRegisterServer", ...), et qui doit avoir été enregistré dans la BDR à
l'aide de REGSVR32.EXE
P.ex.
regsvr32 shell32.dll
regsvr32 capicom.dll
...
regsvr32 lit alors certaines données présentes dans le fichier dll, et
crée des clefs en conséquence dont la 1ère est un CLSID (CLasS
IDentifier).
P.ex. l'enregistrement de "capicom.dll" (utilisée pour la gestion des
certificats et clefs privées) provoque la création de l'arborescence
HKEY_CLASSES_ROOTCLSID{03ACC284-B757-4B8F-9951-86E600D2CD06}
"{03ACC284-B757-4B8F-9951-86E600D2CD06}" est l'identifiant UNIQUE et
UNIVERSEL de ce composant.
Si un programme en a besoin, c'est par ce CLSID qu'il l'appellera.
Si le composant a bien été enregistré (par regsvr32), on pourra retrouver
le nom du fichier le contenant grâce à la clef
HKCRCLSID{03ACC284-B757-4B8F-9951-86E600D2CD06}InprocServer32
(p.ex., chez moi, la valeur par défait est
"D:DelphiSuperExecCAPICom.dll")
L'intérêt de ce système est que le fichier correspondant peut être
n'importe où, avec n'importe quel nom (cela peut différer suivant les
machines).
Ce qui compte, c'est uniquement le CLSID.
Donc, pour en revenir au problème actuel, l'outil de restauration (je
pense que tu veux parler de %systemroot%system32rstrui.exe) a besoin
d'un composant, mais il ne l'a pas trouvé :
- soit parce qu'il n'a jamais été enregistré
(mais çà m'étonnerait car rstrui est un outil système,
installé avec Windows)
- soit parce qu'il a été flingué par erreur.
Reste à savoir à présent quel est le composant en question.
Il faudrait que tu examines les journaux dans l'observateur d'événements.
En analysant le binaire de rstrui.exe, j'ai vu qu'il faisait appel à au
moins 2 composants :
%systemroot%system32spp.dll
(Microsoft® Windows Shared Protection Point Library)
Clef :
HKCRCLSID{4B966436-6781-4906-8035-9AF94B32C3F7}
%systemroot%system32srcore.dll
(Microsoft® Windows System Restore Core Library)
Clef :
HKCRCLSID{883FF1FC-09E1-48e5-8E54-E2469ACB0CFD}
Donc vérifie aussi l'existence de ces 2 DLL et réenregistre les :
regsvr32 %systemroot%system32spp.dll
regsvr32 %systemroot%system32srcore.dll
NB: si une dll est déjà correctement enregistrée, cela ne cause aucun
problème de la réenregistrer.
PS: Il est possible qu'il y ait d'autres composants ...
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
"gimoka" a écrit dans le message de groupe de
discussion :Je voulais faire une restauration mais elle n'est pas possible !
Une fenêtre s'ouvre et dit:
"Une erreur inattendue s'est produite.
Classe non enregistrée(0x80040154)"
Que signifie cette erreur?
Quelque chose facilitant particulièrement le transit intestinal! ;-)
Cela signifie qu'un composant COM utilisé par l'application concernée n'a
pas été enregistré dans la BDR.
Un tel composant n'est rien d'autre qu'une DLL, un peu spéciale car elle
se doit d'avoir quelques fonctions aux noms normalisés
("dllRegisterServer", ...), et qui doit avoir été enregistré dans la BDR à
l'aide de REGSVR32.EXE
P.ex.
regsvr32 shell32.dll
regsvr32 capicom.dll
...
regsvr32 lit alors certaines données présentes dans le fichier dll, et
crée des clefs en conséquence dont la 1ère est un CLSID (CLasS
IDentifier).
P.ex. l'enregistrement de "capicom.dll" (utilisée pour la gestion des
certificats et clefs privées) provoque la création de l'arborescence
HKEY_CLASSES_ROOTCLSID{03ACC284-B757-4B8F-9951-86E600D2CD06}
"{03ACC284-B757-4B8F-9951-86E600D2CD06}" est l'identifiant UNIQUE et
UNIVERSEL de ce composant.
Si un programme en a besoin, c'est par ce CLSID qu'il l'appellera.
Si le composant a bien été enregistré (par regsvr32), on pourra retrouver
le nom du fichier le contenant grâce à la clef
HKCRCLSID{03ACC284-B757-4B8F-9951-86E600D2CD06}InprocServer32
(p.ex., chez moi, la valeur par défait est
"D:DelphiSuperExecCAPICom.dll")
L'intérêt de ce système est que le fichier correspondant peut être
n'importe où, avec n'importe quel nom (cela peut différer suivant les
machines).
Ce qui compte, c'est uniquement le CLSID.
Donc, pour en revenir au problème actuel, l'outil de restauration (je
pense que tu veux parler de %systemroot%system32rstrui.exe) a besoin
d'un composant, mais il ne l'a pas trouvé :
- soit parce qu'il n'a jamais été enregistré
(mais çà m'étonnerait car rstrui est un outil système,
installé avec Windows)
- soit parce qu'il a été flingué par erreur.
Reste à savoir à présent quel est le composant en question.
Il faudrait que tu examines les journaux dans l'observateur d'événements.
En analysant le binaire de rstrui.exe, j'ai vu qu'il faisait appel à au
moins 2 composants :
%systemroot%system32spp.dll
(Microsoft® Windows Shared Protection Point Library)
Clef :
HKCRCLSID{4B966436-6781-4906-8035-9AF94B32C3F7}
%systemroot%system32srcore.dll
(Microsoft® Windows System Restore Core Library)
Clef :
HKCRCLSID{883FF1FC-09E1-48e5-8E54-E2469ACB0CFD}
Donc vérifie aussi l'existence de ces 2 DLL et réenregistre les :
regsvr32 %systemroot%system32spp.dll
regsvr32 %systemroot%system32srcore.dll
NB: si une dll est déjà correctement enregistrée, cela ne cause aucun
problème de la réenregistrer.
PS: Il est possible qu'il y ait d'autres composants ...
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr