OVH Cloud OVH Cloud

Erreurs de script dans les fichiers d'aides

44 réponses
Avatar
Pat
Bonjour/soir à tous,

Depuis longtemps déjà, j'ai remarqué des erreurs de scripts renvoyées
par IE6 SP2 dans des fichiers d'aides avec l'extension .chm. Ces
problèmes arrivent même sur des installations "vierges" de tout
programme ! Le plus génant c'est qu'elles entravent le fonctionnement
correct de l'aide et je ne sais vraiement pas quoi faire pour résoudre
ce pb ? :-(

Merci par avance pour vos réponses ;-)
@+

--
Pat

10 réponses

1 2 3 4 5
Avatar
Fred
Dans son message
scraper nous dit :

Bonjour scraper, dans le message
news:%
tu disais :


essaie en mode sans echec, tu n'auras pas ce foutu File Protection
System activé :-)



une autre solution est de supprimer la copie du dossier
ServciePackFilesi386, et de DllCache, puis de refuser de remplacer le
fichier par celui présent sur le CD de Windows (refuser d'insréer le
CD XP, en fait) ...

mais j'ai essayé, le fichier a bien été modifié, mais le résultat est
pas probant ... toujours la même erreur ?!
(alors que la taille et la version de ce fichier que j'ai installé
sont bien différents !



Idem, je viens de remettre la version d'origine :-(
Plus d'idées pour le moment.
J'ai cherché longuement chez MS. Soit je n'utilise pas les bons
mots-clé, soit il n'y a rien à ce sujet. C'est tout de même étrange. A
croire que personne n'utilise l'aide :-D



--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
scraper
Bonjour Fred, dans le message
news:
tu disais :


Idem, je viens de remettre la version d'origine :-(
Plus d'idées pour le moment.
J'ai cherché longuement chez MS. Soit je n'utilise pas les bons
mots-clé, soit il n'y a rien à ce sujet. C'est tout de même étrange. A
croire que personne n'utilise l'aide :-D



et du côté de l'activeX ??

as tu réussi à l'identifier ?



--

Adresse invalide
Merci de répondre sur le forum ...
http://scraper.chez.tiscali.fr

scraper
Avatar
Fred
"scraper" a écrit dans le message de
news:
Bonjour Fred, dans le message
news:
tu disais :


> Idem, je viens de remettre la version d'origine :-(
> Plus d'idées pour le moment.
> J'ai cherché longuement chez MS. Soit je n'utilise pas les bons
> mots-clé, soit il n'y a rien à ce sujet. C'est tout de même étrange.


A
> croire que personne n'utilise l'aide :-D

et du côté de l'activeX ??

as tu réussi à l'identifier ?



Bonjour,
Oui, je crois. Je l'ai mis dans le fil un peu plus tôt.
En fait, d'après le script, l'objet créé a une propriété UserSettings.
Et la seule chose que j'ai trouvée avec cette propriété est l'interface
Interface IPCHHelpCenterExternal dans Help Center UI 1.0 Type Library
(tu peux voir avec ton vb6).
Je ne connais pas assez ces principes pour t'en dire plus. Je suis
d'abord parti du CLSID qui m'a donné, via le registre, le nom
"BootStrapper Class" et le nom de l'exécutable HelpCtr.exe. Après j'ai
chargé tout ce qui ressemblait à des références au système d'aide dans
l'explorateur d'objet et j'ai fouillé pour trouver la fameuse propriété.

Une question que je me pose est de savoir qui fixe le code d'erreur en
cas d'échec d'un CreateObject, n'est-ce pas plutôt le Script Host ? Je
n'ai pas encore cherché dans cette direction. Et c'est bien le code
retourné qui plante le script. J'ai stoppé de bonne heure hier soir :-)


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
scraper
Bonjour Fred, dans le message
news:
tu disais :


et du côté de l'activeX ??

as tu réussi à l'identifier ?



Bonjour,
Oui, je crois. Je l'ai mis dans le fil un peu plus tôt.



euh non ... tu as mis l'exe qui semble l'appeler, non ? :-)

En fait, d'après le script, l'objet créé a une propriété UserSettings.
Et la seule chose que j'ai trouvée avec cette propriété est
l'interface Interface IPCHHelpCenterExternal dans Help Center UI 1.0
Type Library (tu peux voir avec ton vb6).
Je ne connais pas assez ces principes pour t'en dire plus. Je suis
d'abord parti du CLSID qui m'a donné, via le registre, le nom
"BootStrapper Class" et le nom de l'exécutable HelpCtr.exe. Après j'ai
chargé tout ce qui ressemblait à des références au système d'aide dans
l'explorateur d'objet et j'ai fouillé pour trouver la fameuse
propriété.



bon, j'ai fait une recherche en partant d'un point de vue radicalement
différent
(pas le choix, je suis pas à l'aise avec les typelib lol

donc, depuis le fichier wordpad.chm, après l'avoir décompilé, je vois que le
lien "voir aussi" de la page de démarrage pointe vers le fichier misc.chm
en décompilant également ce fichier, on retrouve la page qui est appelé par
le premier lien de la fenêtre "voir aussi" de wordpad.chm = il s'agit de
wordpad_notepad_editors.htm

finalement, en éditant cette page, on trouve pas mal de références
intéressantes : fichiers css, etc .... et un fichier "shared.js"


dans ce fichier shared.js, à la ligne 415 (ligne de l'erreur ...) et à la
position 22 (correct !) on trouve un appel à :

obj.classid = sActX_PCHealth;

défini précédemment dans ce fichier .js ...
=> var sActX_PCHealth = "CLSID:FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7";

et depuis le Registre, on retrouve ce CLSID qui pointe vers ...
=> M:WINDOWSPCHealthHelpCtrBinariesHelpCtr.exe

... donc, ça semble bien cohérent avec ce que tu disais .... :-)

tout ça pour dire (ouf !) que, dans le Registre, à
"HKEY_CLASSES_ROOTCLSID{FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7}"
on trouve sous la sous clé InstalledVersion, une entrée
"M:WINDOWSPCHealthHelpCtrBinariesHelpCtr.exe"
qui donne une version 5,1,2600,1106 de l'exécutable ...

or, dans mon dossier WINDOWSPCHEALTHHELPCTRBinaries, la version de ce
fichier est 5.1.2600.2180 ??

peut être la source de l'erreur ???


bon, ceci étant, je suis pas non plus très familier avec le javascript ...
dans ce fichier js, tu trouves aussi une gestion d'erreur, mais là,
honnêtement, j'ai pas creusé ;-)

Une question que je me pose est de savoir qui fixe le code d'erreur en
cas d'échec d'un CreateObject, n'est-ce pas plutôt le Script Host ? Je
n'ai pas encore cherché dans cette direction. Et c'est bien le code
retourné qui plante le script. J'ai stoppé de bonne heure hier soir
:-)



peut être ça ?

// Create Helper Object
// NOTE: this COM Interface is only exposed from HSS.
try {
var obj = window.document.createElement("OBJECT");
objLoaded = true;
obj.width = 1;
obj.height = 1;
obj = document.body.insertAdjacentElement("beforeEnd",
obj)
obj.id = "pchealth";
obj.onerror = "smarthelperror";
obj.classid = sActX_PCHealth;
}
catch (e) {
// HTMLHelp throws returns this on whistler
if (e instanceof Error && e.number == -2147220999) {
obj.removeNode(true);
} else {
throw(e);
}
}

si tu arrives à qque chose avec ? :-)

euh ... si tu as le courage de tout lire rofl

(je crois que je vais arrêter de bonne heure aussi, moi ! lol





--

Adresse invalide
Merci de répondre sur le forum ...
http://scraper.chez.tiscali.fr

scraper
Avatar
Fred
Dans le message:,
scraper écrit:
Bonjour Fred, dans le message
news:
tu disais :


et du côté de l'activeX ??

as tu réussi à l'identifier ?



Bonjour,
Oui, je crois. Je l'ai mis dans le fil un peu plus tôt.



euh non ... tu as mis l'exe qui semble l'appeler, non ? :-)



J'ai cité ce que j'ai remis ci-dessous. Ce n'est pas ce que tu voulais
dire ?

En fait, d'après le script, l'objet créé a une propriété
UserSettings. Et la seule chose que j'ai trouvée avec cette
propriété est l'interface Interface IPCHHelpCenterExternal dans
Help Center UI 1.0 Type Library (tu peux voir avec ton vb6).
Je ne connais pas assez ces principes pour t'en dire plus. Je suis
d'abord parti du CLSID qui m'a donné, via le registre, le nom
"BootStrapper Class" et le nom de l'exécutable HelpCtr.exe. Après
j'ai chargé tout ce qui ressemblait à des références au système
d'aide dans l'explorateur d'objet et j'ai fouillé pour trouver la
fameuse propriété.



bon, j'ai fait une recherche en partant d'un point de vue radicalement
différent
(pas le choix, je suis pas à l'aise avec les typelib lol

donc, depuis le fichier wordpad.chm, après l'avoir décompilé, je vois
que le lien "voir aussi" de la page de démarrage pointe vers le
fichier misc.chm en décompilant également ce fichier, on retrouve la
page qui est appelé par le premier lien de la fenêtre "voir aussi" de
wordpad.chm = il s'agit de wordpad_notepad_editors.htm

finalement, en éditant cette page, on trouve pas mal de références
intéressantes : fichiers css, etc .... et un fichier "shared.js"


dans ce fichier shared.js, à la ligne 415 (ligne de l'erreur ...) et
à la position 22 (correct !) on trouve un appel à :

obj.classid = sActX_PCHealth;

défini précédemment dans ce fichier .js ...
=> var sActX_PCHealth = "CLSID:FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7";

et depuis le Registre, on retrouve ce CLSID qui pointe vers ...
=> M:WINDOWSPCHealthHelpCtrBinariesHelpCtr.exe

... donc, ça semble bien cohérent avec ce que tu disais .... :-)

tout ça pour dire (ouf !) que, dans le Registre, à
"HKEY_CLASSES_ROOTCLSID{FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7}"
on trouve sous la sous clé InstalledVersion, une entrée
"M:WINDOWSPCHealthHelpCtrBinariesHelpCtr.exe"
qui donne une version 5,1,2600,1106 de l'exécutable ...

or, dans mon dossier WINDOWSPCHEALTHHELPCTRBinaries, la version de
ce fichier est 5.1.2600.2180 ??

peut être la source de l'erreur ???



Peut-être, mais nos essais d'hier soir ne sont pas concluants.


bon, ceci étant, je suis pas non plus très familier avec le
javascript ... dans ce fichier js, tu trouves aussi une gestion
d'erreur, mais là, honnêtement, j'ai pas creusé ;-)



En fait tu as refait tout ce que j'ai fait, c'est vrai que cette fois je
n'ai pas autant détaillé que sur le newsgroup windowsxp il y a quelques
temps.
Ceci dit tu pouvais aller beaucoup plus vite en activant le débogage de
script ;-)
Tu tombes directement sur la ligne incriminée.
Mais peut-être que tu n'as pas de débugueur de scripts. J'en ai un avec
Office 2003 et un avec Studio .NET. Je ne sais pas si on peut le
télécharger chez MS.




Une question que je me pose est de savoir qui fixe le code d'erreur
en cas d'échec d'un CreateObject, n'est-ce pas plutôt le Script Host
? Je n'ai pas encore cherché dans cette direction. Et c'est bien le
code retourné qui plante le script. J'ai stoppé de bonne heure hier
soir :-)



peut être ça ?

// Create Helper Object
// NOTE: this COM Interface is only exposed from HSS.
try {
var obj = window.document.createElement("OBJECT");
objLoaded = true;
obj.width = 1;
obj.height = 1;
obj > document.body.insertAdjacentElement("beforeEnd", obj)
obj.id = "pchealth";
obj.onerror = "smarthelperror";
obj.classid = sActX_PCHealth;
}
catch (e) {
// HTMLHelp throws returns this on whistler
if (e instanceof Error && e.number = > -2147220999) { obj.removeNode(true);
} else {
throw(e);
}
}

si tu arrives à qque chose avec ? :-)



Oui, toujours avec le débugueur, je vois que le code de l'erreur n'est
pas -2147220999 mais -2147221164.
Comme ce dernier n'est pas géré, le script se plante.
A priori, il est "normal" d'avoir échec de la création de l'ActiveX hors
du Centre d'Aide et de Support (HSS) voir le commentaire plus haut dans
le code.


euh ... si tu as le courage de tout lire rofl

(je crois que je vais arrêter de bonne heure aussi, moi ! lol



J'ai tout lu :-)
Je viens de tester sur mon XP SP1 sans bug la mise à jour du script
host. Pas de bug après non plus. Fausse piste.
La question reste posée : pourquoi le code d'erreur retourné n'est pas
celui qui est attendu et géré ? Et qui positionne ce code d'erreur ?
AMHA, c'est le SP2 qui fait des siennes. On est dans un environnement IE
et la sécurité a été considérablement modifiée.
Peut-on obtenir la version d'IE SP2 en restant sous SP1, sans installer
le SP2 ?
A suivre ...
Enfin je crois qu'on se triture les méninges pour résoudre un problème
qui n'est pas de notre ressort :-(


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
ddore
Dans son message :,
Fred nous a dit :

Enfin je crois qu'on se triture les méninges pour résoudre un problème
qui n'est pas de notre ressort :-(



En utilisant des méthodes interdites : décompiler les fichiers Kro$oft!!!

--
ddore
Avatar
scraper
Bonjour Fred, dans le message
news:
tu disais :

J'ai cité ce que j'ai remis ci-dessous. Ce n'est pas ce que tu voulais
dire ?

En fait, d'après le script, l'objet créé a une propriété
UserSettings. Et la seule chose que j'ai trouvée avec cette
propriété est l'interface Interface IPCHHelpCenterExternal dans
Help Center UI 1.0 Type Library (tu peux voir avec ton vb6).
Je ne connais pas assez ces principes pour t'en dire plus. Je suis
d'abord parti du CLSID qui m'a donné, via le registre, le nom
"BootStrapper Class" et le nom de l'exécutable HelpCtr.exe. Après
j'ai chargé tout ce qui ressemblait à des références au système
d'aide dans l'explorateur d'objet et j'ai fouillé pour trouver la
fameuse propriété.








si, en te relisant, je comprends mieux :-)

en fait, tu es parti du déboggueur, et moi de fichier html que j'ai
décompilé, et on est arrivés au même point ...

qui donne une version 5,1,2600,1106 de l'exécutable ...

or, dans mon dossier WINDOWSPCHEALTHHELPCTRBinaries, la version de
ce fichier est 5.1.2600.2180 ??

peut être la source de l'erreur ???



Peut-être, mais nos essais d'hier soir ne sont pas concluants.



faut que je vérifie que le fichier que j'avais remplacé hier avait bien
cette version 1106 ? ;-)

En fait tu as refait tout ce que j'ai fait, c'est vrai que cette fois
je n'ai pas autant détaillé que sur le newsgroup windowsxp il y a
quelques temps.
Ceci dit tu pouvais aller beaucoup plus vite en activant le débogage
de script ;-)



oui, c'est ce que j'ai fait maintenant, et effectivement .... ça évite de
décompiler les fichiers d'aide :-)

Tu tombes directement sur la ligne incriminée.
Mais peut-être que tu n'as pas de débugueur de scripts. J'en ai un
avec Office 2003 et un avec Studio .NET. Je ne sais pas si on peut le
télécharger chez MS.



si, avec la suite Visual Studio ... mais .... pas très familier avec cet
outil :-(
(pas du tout, en fait lol




Oui, toujours avec le débugueur, je vois que le code de l'erreur n'est
pas -2147220999 mais -2147221164.



exact

Comme ce dernier n'est pas géré, le script se plante.
A priori, il est "normal" d'avoir échec de la création de l'ActiveX
hors du Centre d'Aide et de Support (HSS) voir le commentaire plus
haut dans le code.



ce serait cool d'essayer de modifier la valeur attendue, et de recompiler,
non ? :-)

Je viens de tester sur mon XP SP1 sans bug la mise à jour du script
host. Pas de bug après non plus. Fausse piste.
La question reste posée : pourquoi le code d'erreur retourné n'est pas
celui qui est attendu et géré ? Et qui positionne ce code d'erreur ?
AMHA, c'est le SP2 qui fait des siennes. On est dans un environnement
IE et la sécurité a été considérablement modifiée.
Peut-on obtenir la version d'IE SP2 en restant sous SP1, sans
installer le SP2 ?



je ne saurais te dire ... pour tester ça, il faudrait que j'installe un SP 1
sur une machine virtuelle :-(

A suivre ...
Enfin je crois qu'on se triture les méninges pour résoudre un problème
qui n'est pas de notre ressort :-(



il me semble ...


--

Adresse invalide
Merci de répondre sur le forum ...
http://scraper.chez.tiscali.fr

scraper
Avatar
MAC GYVER
"ddore" a écrit dans le message news:
ulM6$

En utilisant des méthodes interdites : décompiler les fichiers Kro$oft!!!

--
ddore




Autorisé pour les MVP par exemple depuis peu... enfin si j'ai bien
compris...
Avatar
scraper
Bonjour ddore, dans le message
news:ulM6$
tu disais :


Dans son message :,
Fred nous a dit :

Enfin je crois qu'on se triture les méninges pour résoudre un
problème qui n'est pas de notre ressort :-(



En utilisant des méthodes interdites : décompiler les fichiers
Kro$oft!!!



absolument *pas* !!! ;-)

crois tu, si c'était interdit, que je m'en vanterais *ici* ??

allons, soyons sérieux !!

il n'est abolument pas interdit de décompiler un fichier d'aide chm, que je
sache (la preuve, c'est microsoft qui fournit le décompilateur :
*Microsoft* HTML HelpWorkshop ;-) ) , ni d'utiliser un déboggueur, ni de
tester une version débogguée en local ;-)




--

Adresse invalide
Merci de répondre sur le forum ...
http://scraper.chez.tiscali.fr

scraper
Avatar
scraper
Bonjour MAC GYVER, dans le message
news:
tu disais :


"ddore" a écrit dans le message news:
ulM6$

En utilisant des méthodes interdites : décompiler les fichiers
Kro$oft!!!

--
ddore




Autorisé pour les MVP par exemple depuis peu... enfin si j'ai bien
compris...



hemm ... je crois pas ??

de toutes façons, le problème ne se pose pas ici, tout ce qu'on a fait et
expliqué est parfaitement légal ;-)



--

Adresse invalide
Merci de répondre sur le forum ...
http://scraper.chez.tiscali.fr

scraper
1 2 3 4 5