¿Cómo comprobar si existe un subarchivo en un archivo CHM?
-
18-09-2019 - |
Pregunta
Tengo un número de archivos CHM, y cada uno de los archivos html es un comressed para 5 diferentes archivos HTML. Es decir, digamos que tengo 5 archivos diferentes con nombre Alfa, Beta, Gamma, Delta, Theta. Por ejemplo, puedo comprimir estos 5 en un archivo CHM. Deja la llamada que el archivo CompressedHtm.CHM. Tengo> 500 de estos archivos. Ahora quiero comprobar si todos estos archivos> 500 tienen los 5 archivos secundarios (es decir, alfa, beta, gamma, delta, theta). ¿Hay una manera de comprobar que en VC ++ 6.0 / MFC sin decomiling los archivos CHM.?
Solución
Con Free Pascal llega un totalmente independiente (*) de línea de comandos ejecutables CHMLS que permite mostrar el contenido de un archivo CHM. Existe para múltiples plataformas.
Se puede ejecutar que el uso de tubos y luego procesar la salida.
Da la casualidad de comprimir los archivos EXE para sb otra cosa unos pocos días atrás, se puede obtener aquí http://www.stack.nl/~marcov/chmls.zip
(o descargar el FPC 2.4.0 liberan ventanas si usted no confía en mí)
(*) No sé el estado de win9x.
La salida será similar a:
<Section> <Offset> <UnCompSize> <Name>
0 0 0 /#ITBITS
1 27737212 192334 /#STRINGS
0 70 133 /#SYSTEM
1 22414493 169080 /#TOCIDX
1 26847375 339904 /#TOPICS
1 27187279 294757 /#URLSTR
1 27482036 255176 /#URLTBL
1 27929546 1174749 /$FIftiMain
1 22411742 2751 /$OBJINST
0 0 0 /$WWKeywordLinks/
1 24122411 628812 /$WWKeywordLinks/BTree
1 24751223 111371 /$WWKeywordLinks/Data
1 24862594 2378 /$WWKeywordLinks/Map
1 24864972 1 /$WWKeywordLinks/Property
0 0 70 /_#_README_#_
0 0 0 /baseunix/
1 10656150 1395 /baseunix/_stat_ver.html
1 10651853 1438 /baseunix/_stat_ver_kernel.html
1 10654717 1433 /baseunix/_stat_ver_linux.html
1 10650407 1446 /baseunix/_stat_ver_linux_old.html
1 10653291 1426 /baseunix/_stat_ver_svr4.html
1 10452426 1438 /baseunix/arg_max.html
1 10644473 1510 /baseunix/bitsinword.html
Los archivos empezando por el nº $ y son archivos internos.
(las herramientas son utilidades que vienen con la biblioteca de CHM de Free Pascal que apoya CHM lectura / escritura de soporte independiente de otras herramientas para sistemas de documentación y ayuda Pascales gratis. Es independiente del sistema operativo, y para mi leal saber y entender que funciona bien en OS X / PowerPC64
Otros consejos
Ayuda HTML utiliza Internet Explorer para la visualización. Por lo que sólo necesita utilizar un navegador web para navegar a un URL como MK: @MSITStore: C: \ WINDOWS \ Help \ htmlhelp.chm :: / apiref.htm. Si no existe el archivo, obtendrá DWebBrowserEvents2 :: NavigateError con un código de estado 404. Tenga en cuenta que puede recibir otros errores en las versiones modernas de Windows como Microsoft tiene limitado su uso debido a las preocupaciones de seguridad .