Estoy intentando abrir un archivo .chm.
Descargué la fuente, Waffle.chm
la extraje, hice doble clic y hice clic en "Abrir", pero no importa en qué elemento del archivo chm haga clic, aparece el mensaje:
Navigation to the webpage was canceled.
What you can try:
Retype the address.
¿Que está pasando aqui?
"Desbloquear" el archivo soluciona el problema. Captura de pantalla:
fuente
Ganar 8 x64:
simplemente muévalo a otra carpeta o cambie el nombre de su carpeta (en mi caso: mi carpeta era "c #"). Evite utilizar el símbolo en el nombre de la carpeta. nombrarlo con letra.
hecho.
fuente
Además de la respuesta de Eric Leschinski, y debido a que se trata de stackoverflow, una solución programática:
Windows utiliza bifurcaciones de archivo ocultas para marcar el contenido como "descargado". Truncarlos desbloquea el archivo. El nombre de la secuencia utilizada para los CHM es "Zone.Identifier". Se puede acceder a las secuencias agregando: streamname al abrir el archivo. (¡mantenga copias de seguridad la primera vez, en caso de que su RTL lo estropee!)
En Delphi se vería así:
Me dijeron que en sistemas de archivos no bifurcados (como FAT32) hay archivos ocultos, pero aún no he llegado al fondo de eso.
DeleteFile () de Ps Delphi también debería reconocer bifurcaciones.
fuente
La solución definitiva es permitir que el protocolo InfoTech funcione en la zona de intranet.
Agregue el siguiente valor al registro y el problema debería resolverse:
Más información aquí: http://support.microsoft.com/kb/896054
fuente
Ir a Inicio
Tipo
regsvr32 hhctrl.ocx
Debería recibir un mensaje de éxito como:
Ahora intente abrir su archivo CHM nuevamente.
fuente
otra forma es utilizar un software de terceros diferente. Este enlace muestra más software de terceros para ver archivos chm ...
Probé con SumatraPDF y funcionó bien.
fuente
Arreglé esto programáticamente en mi software, usando C ++ Builder.
Antes de asignar el archivo de ayuda de CHM,
Application->HelpFile = HelpFileName
verifico si contiene el flujo "Zone.Identifier" y, cuando lo hace, simplemente lo elimino.fuente
Aparentemente, existen diferentes niveles de autenticación. La mayoría de los artículos que leí le dicen que configure MaxAllowedZone en '1', lo que significa que la zona de máquina local y la zona de intranet están permitidas, pero '4' permite el acceso para 'todas' las zonas.
Para obtener más información, lea este artículo: https://support.microsoft.com/en-us/kb/892675
Así es como se ve mi registro (no estaba seguro de que funcionaría con los comodines, pero parece funcionar para mí):
Como nota adicional, extrañamente la clave "UrlAllowList" era necesaria para que esto funcionara en otra PC, pero no en la de prueba. Probablemente no sea necesario en absoluto, pero cuando lo agregué, solucionó el problema. Es posible que el usuario no haya cerrado el archivo original o algo por el estilo. Así que solo una consideración. Sugiero probar lo mínimo y probarlo, luego agregarlo si es necesario. Una vez que lo confirme, puede implementarlo si es necesario. ¡Buena suerte!
Editar: PD Otro método que funcionó fue mapear la ruta a la red localmente usando mklink / d (enlace simbólico en Windows 7 o más reciente) pero mapear una letra de unidad de red (Z: para prueba) no funcionó. Solo para pensar y no tuve que "Desbloquear" ningún archivo. Además, la 'Solución' aceptada no resolvió el problema para mí.
fuente