Pregunta

En los viejos tiempos, la ayuda no era trivial sino posible:genere un archivo .rtf original con etiquetas especiales, ejecútelo a través de un compilador y obtendrá un archivo WinHelp (.hlp) que realmente funciona muy bien.

Luego, Microsoft decidió que WinHelp ya no estaba de moda y cambió a CHM, hasta el punto de eliminar WinHelp de Vista.

Ahora bien, CHM puede ser agradable, pero todos los que intentaron abrir un archivo .chm en la red conocerán la bonita pantalla "Se canceló la navegación a la página web" que se debe a restricciones de seguridad.

Si bien hay formas de hacer que CHM funcione fuera de la red, esta no es una buena opción, porque cuando un usuario presiona el botón Ayuda quiere ayuda y no tener que realizar algunas configuraciones extravagantes.

Línea de fondo:Encuentro CHM absolutamente inutilizable.Pero como WinHelp ya no es una opción, me pregunto cuáles son las alternativas, especialmente cuando se trata de integración con mi aplicación (es decir,¿Para WinHelp y CHM hay funciones que le permiten saltar directamente a un tema)?

El PDF tiene la desventaja de requerir Adobe Reader (o uno de los más livianos que no mucha gente usa).Podría vivir con eso ya que esto es una especie de estándar hoy en día, pero ¿puedes decirle de manera confiable que salte a una página/ancla determinada?

Los archivos HTML parecen ser la mejor opción, luego solo tienes que lidiar con diferentes navegadores (CSS y demás).

Editar: Estoy buscando crear mis propios archivos de ayuda.Como soy fanático de la filosofía "Sin configuración, solo extraer y ejecutar", tuve ese problema muchas veces en el pasado porque muchos de mis usuarios lo ejecutaban fuera de la red, lo que causa exactamente este problema.

Por eso, estoy buscando una forma más sólida y preparada para el futuro de brindar ayuda a mis usuarios sin tener que codificar un sistema de ayuda diferente para cada aplicación que hago.

CHM es un formato realmente agradable, pero ese elemento de seguridad lo hace inutilizable, ya que se supone que un sistema de ayuda debe brindar ayuda al usuario, no generar aún más problemas.

¿Fue útil?

Solución

HTML sería la siguiente mejor opción, SÓLO SI los serviría desde un servidor web público.Si intentara incluirlo con su aplicación, todos los archivos (e imágenes (y hojas de estilo (y...))) harían que CHM pareciera un regalo de los dioses.

Dicho esto, cuando se incluyeron en el paquete de instalación (en lugar de distribuirse a través de la red), encontré que los archivos CHM funcionan bien.

OTOH, otro error de los archivos CHM:Incluso si intenta abrir un archivo CHM en un local disco, puede toparse con el bloqueo de seguridad si inicialmente lo descargó de algún lugar, porque el archivo podría estar marcado como "proviene de una fuente externa" cuando se obtuvo.

Otros consejos

No me gusta la opción html y, de hecho, pasé de HTML simple a CHM comprimiéndolos e indexándolos.Incluso utilícelos en un puñado de clientes que no utilizan Windows.Simplemente resolvió las pequeñas fallas constantes de las personas que lo colocaban en la red (profundidad de anidamiento limitada, efectos de bloqueo extraños), el antivirus que moría en directorios con 30000 archivos html y un tiempo de descompresión de 20 minutos al instalarlo en un sistema más antiguo, zonas de seguridad del navegador y características, errores de cálculo del espacio necesario en el instalador, etc.

Y ni siquiera incluyo a las personas que empiezan a "corregirlos", productos de terceros con intentos de "integración" defectuosos, etc., quejas sobre lentitud (inicio del navegador)

Todos habíamos esperado años para que los problemas desaparecieran a medida que los sistemas operativos y el hardware mejoraran, pero los problemas seguían repitiéndose en una cantidad deslumbrante de variedades y ya fue suficiente.Encontramos chmlib y decidimos que siempre podríamos usar algo basado en esto como escape con un lector externo simple, si el sistema operativo proporcionado dejaba de funcionar y cambiaba.

Mientras tanto, también tenemos un compilador propio, por lo que estamos preparados para el futuro sin MS.Eso no significa que nunca cambiaremos (las soluciones con servidores web locales parecen las favoritas hoy en día), pero al menos tenemos una opción.

Nuestro software se distribuye localmente a los clientes y se sirve desde una red compartida.Optamos por generar tanto un archivo CHM como un conjunto de archivos HTML para servir desde la red.Los usuarios que inician el programa localmente usan el archivo CHM, y los usuarios que obtienen su programa desde un recurso compartido de red deben usar los archivos HTML.

Usamos Ayuda y Manual y por lo tanto puede producir fácilmente ambos tipos de resultados desde el mismo proyecto fuente.Los archivos HTML también contienen capacidades de búsqueda y no requieren un servidor web, por lo que, aunque no es una solución óptima, funciona bien.

Hasta ahora, todos los tipos de archivos únicos para Windows parecen estar rotos de una forma u otra:

  • WinHelp - obsoleto
  • HtmlHelp (CHM): obsoleto en Vista, no funciona desde el recurso compartido de red, aparte de eso, funciona muy bien
  • Microsoft Help 2 (HXS): esto parece funcionar hasta el momento en que no funciona, índices dañados o similares, esto lo utiliza Visual Studio 2005 y versiones posteriores, como ejemplo

Si no desea utilizar un instalador y no desea que el usuario realice ningún paso adicional para permitir archivos CHM en la red, ¿por qué no recurrir a WinHelp?Vista no incluye WinHlp32.exe listo para usar, pero es disponible gratuitamente como descarga tanto para Vista como para Server 2008.

Depende de qué tan importada sea la documentación en línea a su producto, una buena infraestructura de documentación puede ser compleja de establecer, pero una vez hecha, vale la pena.Así es como lo hacemos:

  • Fuente de ayuda DITA XML compilante, almacenado en SCC (ClearCase).
  • Ayuda para editar xmetal
  • Compilación de ayuda, personalizada. Abrir el kit de herramientas DITA, con preprocesamiento personalizado de Perl/Java
  • La fuente de ayuda hace referencias cruzadas a recursos de aplicaciones en tiempo de compilación, archivos .RC, etc.
  • Entregables de ayuda desde una única fuente, PDF, CHM, Ayuda de Eclipse, HTML.
  • El repositorio de fuente única produce ayuda para múltiples productos 10+ con miles de temas compartidos.

Por lo que usted describe, miraría la Ayuda de Eclipse, no es fácil de integrar en aplicaciones .NET o MFC, básicamente debe hacer el mapeo de ayuda para resolver la solicitud a una URL y luego activar la URL al contenedor de Ayuda de Eclipse o a un navegador.

¿La pregunta es cómo generar sus propios archivos de ayuda o cuál es el mejor formato de archivo de ayuda?

Personalmente, encuentro que CHM es excelente.Una de las primeras cosas que hago al configurar una máquina es descargar el manual de PHP en formato CHM (http://www.php.net/download-docs.php) y agregarle una tecla de acceso rápido en Editor carmesí.Entonces, cuando presiono F1, carga el CHM y realiza una búsqueda de la palabra en la que se encuentra mi cursor (excelente para una referencia rápida de funciones).

Si está haciendo "simplemente extraer y ejecutar", se encontrará con problemas de seguridad.Esto es especialmente cierto si sus usuarios ejecutan Vista (o posterior).¿Existe alguna razón por la que desea evitar empaquetar sus aplicaciones dentro de un instalador?El uso de un instalador aliviaría el problema de la "fuente externa".Podrás utilizar archivos .chm sin ningún problema.

Usamos InstalarAware para crear nuestros paquetes de instalación.No es barato, pero es muy bueno.Si el costo es su preocupación, WIX Es de código abierto y bastante robusto.WIX tiene una curva de aprendizaje, pero es fácil trabajar con él.

PDF tiene la desventaja de requerir Adobe Reader

yo suelo Lector Foxit en Windows en casa y en el trabajo.Mucho más pequeño y muy rápido de abrir.Muy útil cuando te preguntas qué es exactamente a80000326.pdf y por qué obstruye tu carpeta de documentos.

Creo que la solución que finalmente usaremos para nuestra aplicación es alojar nosotros mismos los archivos de ayuda.Esto nos da acceso inmediato a los archivos y la posibilidad de mantenerlos actualizados.

Lo que planeo es cargar el contenido en una gran serie de archivos XML, cada uno de los cuales contiene ayuda para un elemento específico.Este XML contendría enlaces a otros archivos XML.Usaríamos XSLT para mostrar los contenidos según sea necesario.

Dependiendo de la licencia, podemos crear un archivo XSLT específico del cliente para adaptar la apariencia a lo que necesitan.Es posible que también necesitemos poder mostrar ayuda solo para versiones particulares de nuestro producto y eso se puede hacer filtrando cosas en el XSLT.

Utilizo un paquete comercial llamado AuthorIT que puede generar varios formatos diferentes, como chm, html, pdf, word, ayuda de Windows, xml, xhtml y algunos otros de los que nunca he oído hablar (¿te suena dita?).Es un sistema de gestión de contenidos orientado a las necesidades de los redactores de documentación técnica.La ventaja es que puedes usar y reutilizar el mismo contenido para crear un conjunto de guías y luego generarlas en diferentes formatos.

Entonces, la conclusión relativa a la cuestión de elegir chm o html o lo que sea es que si estás usando esto no estás bloqueado en un formato determinado, pero puedes proporcionar varios entre los cuales el usuario puede elegir, e incluso puedes agregar más formatos. sobre la marcha, sin coste adicional.

Si solo tiene una guía para crear, no valdrá la pena, pero si tiene una documentación para administrar, entonces es lo mejor que yo sepa.Su apoyo también es muy útil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top