J'essaye d'ouvrir un fichier .chm.
J'ai téléchargé la source, je l'ai extraite, puis j'ai double-cliqué Waffle.chm
et cliqué sur "Ouvrir" mais quel que soit l'élément du fichier chm sur lequel je clique, je reçois le message:
Navigation to the webpage was canceled.
What you can try:
Retype the address.
Que se passe t-il ici?
"débloquer" le fichier résout le problème. Capture d'écran:
la source
Gagnez 8 x64:
déplacez-le simplement dans un autre dossier ou renommez votre dossier (dans mon cas: mon dossier était "c #"). évitez d'utiliser le symbole sur le nom du dossier. nommez-le avec une lettre.
terminé.
la source
En plus de la réponse d'Eric Leschinski, et parce qu'il s'agit de stackoverflow, une solution programmatique:
Windows utilise des fourchettes de fichiers cachées pour marquer le contenu comme "téléchargé". Tronquer ces débloque le fichier. Le nom du flux utilisé pour les CHM est "Zone.Identifier". On peut accéder aux flux en ajoutant: streamname lors de l'ouverture du fichier. (gardez les sauvegardes la première fois, au cas où votre RTL gâcherait ça!)
Dans Delphi, cela ressemblerait à ceci:
On me dit que sur les systèmes de fichiers non fourchus (comme FAT32), il y a des fichiers cachés, mais je ne suis pas encore allé au fond de cela.
DeleteFile () de Ps Delphi devrait également reconnaître les fourches.
la source
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:
Plus d'informations ici: http://support.microsoft.com/kb/896054
la source
Aller au début
Type
regsvr32 hhctrl.ocx
Vous devriez recevoir un message de réussite comme:
Maintenant, essayez à nouveau d'ouvrir votre fichier CHM.
la source
L'autre façon consiste à utiliser différents logiciels tiers. Ce lien montre plus de logiciels tiers pour afficher les fichiers chm ...
J'ai essayé avec SumatraPDF et cela fonctionne très bien.
la source
J'ai corrigé cela par programme dans mon logiciel, en utilisant C ++ Builder.
Avant d'attribuer le fichier d'aide CHM
Application->HelpFile = HelpFileName
, je vérifie s'il contient le flux "Zone.Identifier", et quand c'est le cas, je le supprime simplement.la source
Il existe apparemment différents niveaux d'authentification. La plupart des articles que j'ai lus vous disent de définir MaxAllowedZone sur «1», ce qui signifie que la zone de la machine locale et la zone intranet sont autorisées mais que «4» permet l'accès à «toutes» les zones.
Pour plus d'informations, lisez cet article: https://support.microsoft.com/en-us/kb/892675
Voici à quoi ressemble mon registre (je n'étais pas sûr que cela fonctionnerait avec les caractères génériques mais cela semble fonctionner pour moi):
Comme note supplémentaire, bizarrement, la clé "UrlAllowList" était nécessaire pour que cela fonctionne sur un autre PC mais pas mon test. Ce n'est probablement pas du tout nécessaire, mais quand je l'ai ajouté, cela a résolu le problème. L'utilisateur n'a peut-être pas fermé le fichier d'origine ou quelque chose du genre. Donc juste une considération. Je suggère d'essayer le moins et de le tester, puis d'ajouter si nécessaire. Une fois que vous confirmez, vous pouvez déployer si nécessaire. Bonne chance!
Edit: PS Une autre méthode qui a fonctionné consistait à mapper le chemin d'accès au réseau localement en utilisant mklink / d (liaison symbolique dans Windows 7 ou plus récent), mais le mappage d'une lettre de lecteur réseau (Z: pour les tests) ne fonctionnait pas. Juste matière à réflexion et je n'ai pas eu à «débloquer» de fichiers. De plus, la «solution» acceptée n'a pas résolu le problème pour moi.
la source