84 votes

L'ouverture d'un fichier CHM produit : "la navigation vers la page web a été annulée"

J'essaie d'ouvrir un fichier .chm.

J'ai téléchargé la source, je l'ai extraite, et j'ai double-cliqué sur Waffle.chm et cliqué sur "Ouvrir" mais quel que soit l'élément du fichier chm sur lequel je clique, j'obtiens le message :

Navigation to the webpage was canceled.  
What you can try: 
Retype the address.  

enter image description here

Qu'est-ce qui se passe ici ?

170voto

Eric Leschinski Points 14289

Résumé

Les mises à jour de sécurité de Microsoft 896358 et 840315 bloquent l'affichage du contenu des fichiers CHM lorsqu'ils sont ouverts à partir d'un lecteur réseau (ou d'une Chemin UNC ). Il s'agit d'une tentative de Windows d'empêcher les vecteurs d'attaque des virus/logiciels malveillants d'infecter votre ordinateur et de bloquer le fichier .chm qui attire les données via le protocole "InfoTech", que ce fichier chm utilise.

Le résumé du problème par Microsoft : http://support.microsoft.com/kb/896054

Solutions

  1. Si vous utilisez Windows Server 2008, Windows 7, Windows a créé une solution rapide. Cliquez avec le bouton droit de la souris sur le fichier chm, et vous obtiendrez la boîte de dialogue "yourfile.chm Properties", en bas, un bouton appelé "Unblock" apparaît. Cliquez sur Unblock et appuyez sur OK, et essayez à nouveau d'ouvrir le fichier chm, il fonctionne correctement. Cette option n'est pas disponible pour les versions antérieures de Windows avant WindowsXP (SP3).

  2. Résolvez le problème en déplaçant votre fichier chm HORS du lecteur réseau. Vous ne savez peut-être pas que vous utilisez un lecteur réseau, vérifiez-le maintenant : Faites un clic droit sur votre fichier .chm, cliquez sur Propriétés et regardez le champ "Emplacement". S'il commence par deux barres obliques inversées comme ceci : \\epicserver\blah\ alors vous utilisez un lecteur en réseau. Pour résoudre ce problème, copiez le fichier chm et collez-le sur un disque local, comme C:³ ou E :. Essayez ensuite de rouvrir le fichier chm, Windows ne panique pas.

  3. Dernier recours, si vous ne pouvez pas copier/déplacer le fichier hors du lecteur en réseau. Si vous devez l'ouvrir là où il se trouve, et que vous utilisez une version inférieure de Windows comme XP, Vista, ME ou autre, vous devrez dire manuellement à Windows de ne pas flipper sur ce fichier .chm. HHReg (Utilitaire d'enregistrement de l'aide HTML) L'utilitaire automatise cette tâche. En gros, vous téléchargez l'utilitaire HHReg, vous chargez votre fichier .chm, vous appuyez sur OK et il crée les clés de registre nécessaires pour que Windows ne le bloque pas. Pour en savoir plus : http://www.winhelponline.com/blog/fix-cannot-view-chm-files-network-xp-2003-vista/

Windows 8 ou 10 ? --> Mise à niveau vers Windows XP.

3 votes

Je ne vois pas le bouton "Débloquer" sur WinXP SP3 ou WinVista Home Premium.

0 votes

La solution 1 n'est pas dans Windows 8, y a-t-il un moyen facile pour win8 ?

2 votes

Aucune des solutions proposées ne correspond aux 4 solutions possibles données par l'article KB référencé. Le réglage de 'MaxAllowedZone' sur '1' a réglé le problème pour moi.

44voto

colemik Points 412

Le "déblocage" du fichier résout le problème. Capture d'écran :

enter image description here

0 votes

J'ai oublié car je n'ai pas utilisé cette astuce depuis longtemps, merci de me le rappeler.

0 votes

@kaziTanvirAhsan content d'avoir pu aider.

0 votes

Passer de l'emplacement réseau à l'emplacement local n'est pas suffisant - vous devez débloquer comme dans cette capture d'écran. Merci @trismarck

11voto

Marco van de Voort Points 15378

En complément de la réponse d'Eric Leschinski, et parce que c'est stackoverflow, une solution programmatique :

Windows utilise des fourches de fichiers cachés pour marquer le contenu comme "téléchargé". En les tronquant, on débloque le fichier. Le nom du flux utilisé pour les CHM est "Zone.Identifier". On peut accéder aux flux en ajoutant :streamname à l'ouverture du fichier. (gardez des copies de sauvegarde la première fois, au cas où votre RTL gâcherait tout !)

En Delphi, cela ressemblerait à ceci :

var f : file;
begin
 writeln('unblocking ',s);
 assignfile(f,'some.chm:Zone.Identifier');
 rewrite(f,1);
 truncate(f);
 closefile(f);
end;

On m'a dit que sur les systèmes de fichiers non bifurqués (comme FAT32), il y a des fichiers cachés, mais je ne suis pas encore allé au fond des choses.

P.s. La fonction DeleteFile() de Delphi devrait également reconnaître les fourches.

0 votes

Réponse très intéressante. Où puis-je trouver plus d'informations sur cette histoire de fourchettes de fichiers cachés ?

0 votes

MSDN. Par exemple, qqn a fait remarquer que deletefile fonctionne aussi, et j'ai regardé l'appel correspondant dans MSDN et la façon exacte dont la fonction se comporte est documentée. La partie spécifique Zone.Identifier m'est venue d'Internet. Cela fonctionne également pour les EXEs bloqués si vous avez des paramètres de sécurité élevés pour MSIE.

11voto

Hammond22 Points 111

Win 8 x64 :

déplacez-le simplement dans un autre dossier ou renommez votre dossier (dans mon cas : mon dossier était "c#"). évitez d'utiliser un symbole dans le nom du dossier. nommez-le avec une lettre.

fait.

0 votes

Cela fonctionne également. Mon fichier .chm se trouvait dans ce dossier C:\C # \Samples puis je l'ai déplacé vers C:\temp et boom ! Ça marche ! Merci pour cela :)

0 votes

Excellent ! Je suis un utilisateur de Windows 10 : j'ai dû supprimer le "#" à la fois du nom du fichier et du nom du dossier d'un ancien fichier d'aide c# chm.

6voto

GetFree Points 4971

La solution définitive est de permettre au protocole InfoTech de fonctionner dans la zone intranet.

Ajoutez la valeur suivante au registre et le problème devrait être résolu :

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001

Plus d'informations ici : http://support.microsoft.com/kb/896054

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X